Ru-Board.club
← Вернуться в раздел «Web-программирование»

» mod_rewrite: документация, готовые решения, вопросы

Автор: dacuan
Дата сообщения: 30.09.2009 17:30
YFocker

Цитата:
но логи (файл error.log, там я пытаюсь найти то, что бы показало мне ошибки реврайтинга) у меня никак не откликается - там не появляется данных об изменениях, которые я провожу..

Логи реврайта включаются отдельно. Об этом написано в шапке:

Цитата:
Настройка журналирования (Лога):

Чтобы включить лог mod_rewrite необходимо в описании вашего виртуального хоста (обычно это файл httpd.conf) добавить две строчки:


Код: RewriteLog /путь/к/лог/файлу
RewriteLogLevel 9


И перезапустить апача. Крайне не рекомендуется производить это на работающем сервере, так как объемы отладочной информации генерируются действительно большие и найти свое бывает очень сложно.
Автор: rstar1979
Дата сообщения: 05.10.2009 12:17
Привет!
имею ссылку http://sayt/page.php?s=2
хочу сделать ее такой http://sayt/2

вот такой код написалЖ
RewriteRule ^/(.*)$ /page.php?s=$1


преобразование непроисходит.
в логах

127.0.0.1 - - [05/Oct/2009:12:16:11 +0300] [sayt/sid#9ed230][rid#5d8ef40/initial] (3) [perdir Z:/home/sayt/www/] strip per-dir prefix: Z:/home/sayt/www/page.php -> page.php
127.0.0.1 - - [05/Oct/2009:12:16:11 +0300] [sayt/sid#9ed230][rid#5d8ef40/initial] (3) [perdir Z:/home/sayt/www/] applying pattern '^/(.*)$' to uri 'page.php'
127.0.0.1 - - [05/Oct/2009:12:16:11 +0300] [sayt/sid#9ed230][rid#5d8ef40/initial] (1) [perdir Z:/home/sayt/www/] pass through Z:/home/sayt/www/page.php


настраиваю все на денвере.
Подскажите куда смотреть.
Спасибо
Автор: dacuan
Дата сообщения: 05.10.2009 12:25
rstar1979
а page.php точно существует и открывается по запросу http://sayt/page.php ?
Автор: rstar1979
Дата сообщения: 05.10.2009 12:48
Да но он без указание типа"http://sayt/page.php?s=2" перекидует на http://sayt/index.php
а с указанием кидает на смарти :
$smarty->template_dir = $tpl[0]->template_path;
$smarty->display('kontakt.tpl');
но в строке ьраузера остаеться http://sayt/page.php?s=2
Автор: alex6886
Дата сообщения: 18.10.2009 16:16
Перечитал все 35 страниц,аналогичного того что мне нужно не нашёл,помогите мне реализовать такую вещь есть страница test.html она с помощью мод реврайт показывается как главная,то есть при обращении к сайту www.my_site.ru Так вот,пользователям определённого диапазона айпи например 89.245.192.0 - 89.245.255.128 при обращении к сайту по адресу www.my_site.ru или напрямую к странице test.html должна показываться страница dubl.html а всем остальным как обычно test.html также как и при обращении к сайту по адресу www.my_site.ru Заранее спасибо за ответ.
Автор: alex6886
Дата сообщения: 19.10.2009 05:43
Ну что никто не поможет?
Автор: ra1n
Дата сообщения: 02.11.2009 07:31
Всем привет еще раз.

Почему то не работает правило:

Код: RewriteEngine On
RewriteCond %{QUERY_STRING} page=1[^0-9]?
RewriteRule .*$ /pageA [L]
Автор: Cheery
Дата сообщения: 02.11.2009 08:24
ra1n
читайте ло ошибок сервера - там будет все сказано о 500 ошибке
Автор: ra1n
Дата сообщения: 02.11.2009 09:20
Да, мне уже советовали. Пока нет к ПУ доступа, поэтому спросил здесь, лишняя информация не повредит.
Автор: Cheery
Дата сообщения: 02.11.2009 18:01
ra1n
пока сложно сказать.. уберите правило и посмотрите - будет ли ругаться. может не в нем дело
Автор: Only4You
Дата сообщения: 03.11.2009 23:39
Приветствую. Подскажите вот у меня сайт . при нажатие на ссылки вид получаеться
http://mysite.ru/?act=contacts
http://mysite.ru/?act=doc

Как можно убрать ?act=contacts, что бы было только http://mysite.ru
или какие варианты есть.
Спасибо.
Автор: Cheery
Дата сообщения: 04.11.2009 02:43
Only4You

Цитата:
Как можно убрать ?act=contacts, что бы было только

никак. к mod_rewrite это не относится
либо делаете все во фрейме, либо извращаетесь с выставлением адресов в куках.. либо делаете все обновления через ajax.. ничто из этого не приводит к хорошему SEO
Автор: dsfkjzhnxcxz
Дата сообщения: 11.11.2009 20:40
Доброго времени суток. У меня следующая проблема. Перенёс, например, сайт http://mysite.ru на домен mysite.com. Сейчас одновременно существуют оба сайта и нужно, что зашедшие к примеру на страницу http://mysite.ru/content/view/28/33/ попадали такую же страницу другого домена, то есть на http://mysite.com/content/view/28/33/
Какое правило здесь нужно использовать?

Правило

Код:
RewriteCond %{HTTP_HOST} ^www.mysite.ru$ [R=301,1]
RewriteRule ^(.*)$ http://mysite.com/$1
Автор: Cheery
Дата сообщения: 11.11.2009 20:41
dsfkjzhnxcxz

Цитата:
выдаёт почему-то ошибку 500

потому что
Цитата:
[R=301,1]

относится к правилами, а не условиям
перенесите строкой ниже
Автор: dsfkjzhnxcxz
Дата сообщения: 11.11.2009 21:05

Цитата:
относится к правилами, а не условиям
перенесите строкой ниже

Спасибо, всё заработало
Автор: ASE_DAG
Дата сообщения: 22.11.2009 19:51
Добрых суток. Я в вашем деле даже близко не специалист, но сейчас пришлось заняться небольшим сайтом, столкнулся вот с чем.
Есть файлы, заливающиеся по FTP, в именах кириллица KOI8-R. Обращение к файлу обрабатывается RewriteEngine:

Цитата:
RewriteCond %{REQUEST_FILENAME}.htm -f
RewriteRule ^(.+)$ index.php?page=$1.htm [L,QSA]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)$ index.php?dir=$1 [L,QSA]

После обработки имя файла на выходе оказывается в UTF-8, следствие — файл не найден.
Можно, конечно, в скрипте сконвертировать обратно в KOI-8, но хочется узнать причину и обойтись без этого финта. Подскажите, где искать.
Автор: za12
Дата сообщения: 23.11.2009 20:33
Все привет. Народ подскажите, как сделать так, чтобы правила реврайта работали без .htaccess, т.е можно их задать как общие для все виртуальных хостов?
Автор: andead
Дата сообщения: 24.11.2009 00:11
za12
поместить их в httpd.conf
Автор: LuXiMaL
Дата сообщения: 29.11.2009 00:49
Приветствую всех.
Перехожу на другую cms, а посему для меня возникла такая проблема:
Имеются ссылки вида http://www.***.ru/news.php?readmore=ЦИФРЫ
Хотел редиректить на ссылки вида http://www.***.ru/bla-bla-bla.html
Исходных ссылок около 40.
Подскажите пожалуйста как это организовать в .htaccess.
Автор: LuXiMaL
Дата сообщения: 29.11.2009 23:11
Проблема решилась таким образом:

Код: RewriteCond %{QUERY_STRING} readmore=ЦИФРЫ
RewriteRule news.php http://www.***.ru/bla-bla-bla.html? [R=301,L]
Автор: The_S
Дата сообщения: 04.12.2009 15:28
Привет.

Подскажите как можно реализовать такую задачу:
Есть всякие разные файлы (картинки, css, js) в нескольких директориях в корне.
/img
/codebase
и т.д.
Допустим, я их физически переношу в одну директорию, например, в /oldsite/
Как сделать чтобы при запросе /img/* выдавал /oldsite/img/* ну и соответвенно все остальнон перенесенное тоже /codebase/* => /oldsite/codebase/* и т.д.
Автор: Le Droy
Дата сообщения: 08.12.2009 17:46
Доброго времени суток!

35 страниц осилить, к сожалению, не могу. Подскажите, пожалуйста: как для .js/.css/.gif/.jpg etc. файлов не применять rewrite правила? Я знаю, где-то это уже обсуждалось, но не могу найти где.

Т.е. у нас есть сайт: localhost/index.php?page=welcome
есть rewrite правило: ^welcome/ index.php?page=welcome

Все картинки, скрипты, стили находятся в корне. Когда мы заходим на: localhost/welcome/ он уже не загружает ни скрипты, ни картинки, ни стили, т.к. относительный адрес становится уже: localhost/welcome/style.css, а не как должно быть: localhost/style.css

Как от такого избавиться? Заранее блгодарен за помощь!
Автор: koc
Дата сообщения: 13.12.2009 19:15
Может ли mod_rewrite как-то влиять на mod_headers? Нужно предложить сохранить файл, а не показывать его.

Код: RewriteRule (.+?)/(.+?)/(.+) /path/to/dir/$1 [L,T="application/octet-stream"]
Header set Content-Type "application/octet-stream"
Header set Content-Disposition "attachment; filename='aa.pdf'"
Автор: substrackto
Дата сообщения: 15.12.2009 15:56

Цитата:
Доброго времени суток!

35 страниц осилить, к сожалению, не могу. Подскажите, пожалуйста: как для .js/.css/.gif/.jpg etc. файлов не применять rewrite правила? Я знаю, где-то это уже обсуждалось, но не могу найти где.

Т.е. у нас есть сайт: localhost/index.php?page=welcome
есть rewrite правило: ^welcome/ index.php?page=welcome

Все картинки, скрипты, стили находятся в корне. Когда мы заходим на: localhost/welcome/ он уже не загружает ни скрипты, ни картинки, ни стили, т.к. относительный адрес становится уже: localhost/welcome/style.css, а не как должно быть: localhost/style.css

Как от такого избавиться? Заранее блгодарен за помощь!

Попробуй добавить:
RewriteCond $1 !^.+\.(js|css|gif|jpg|png)$
Автор: bankir19821982
Дата сообщения: 17.12.2009 23:24
Товарищи, выручайте.
есть урл вида item.php?id=*0025478
некоторые люди заходят по ссылке item.php?id=%2A0025478 (* меняет на %2A)
хотелось бы перенаправлять их на item.php?id=*0025478 (тоесть со звездочкой)
что-то думал-думал, пробовал разные варианты, но к концу недели ничего в голову уже не приходит. Может Вы чего подскажете - буду очень признателен.
Автор: saharito
Дата сообщения: 28.12.2009 11:46
Подскажите в чем трабл .. урезал URL и получился
site.ru/for
Но если прописать
site.ru/for/
Картинки и все что можно не подгружаеться .
RewriteEngine on
RewriteRule ^([a-zA-Z0-9_-]+)/?$ mys.php?name_url=$1 [L]
Уже запарился ковырять просто все напрасну и все .
Автор: dacuan
Дата сообщения: 28.12.2009 14:56
saharito
Как URL-ы картинок прописаны на странице?
Автор: saharito
Дата сообщения: 29.12.2009 01:19
они все лежат в папке images
получаеться site.ru/images/foto.jpg
Автор: PEDKA
Дата сообщения: 29.12.2009 07:25
saharito
mod_rewrite: документация, готовые решения, вопросы
Автор: molekyla
Дата сообщения: 29.12.2009 12:07
а силил 10 страниц - больше не смог) чуть мозг не взорвался)
вопрос простой - на ibresource порекомендовали сюда обратиться!

Как на IPB 2.3.5 перенаправить все исходящие ссылки.
У меня есть свой скрипт для обработки исходящих ссылок go.php (вызываеться просто /click?http://www.site.com)

как на форуме отреврайтитьь все исходящие ссылки типа
http://www.site.com
на
/click?http://www.site.com


спасибо!

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445

Предыдущая тема: PHP: Регулярные выражения (RegExp, Regular, eregi, preg)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.