|
|
|
| Пример взял с сайта htaccess.net.ru
RewriteEngine On
Options FollowSymLinks
RewriteRule /search.php?query=^(.*)$ /поиск_$1.html
Т.е когда я обращаюсь по ссылке /search.php?query=Яndex ушел спать
Адрес должен преобразоваться в
/поиск_%D0%AFndex+%D1%83%D1%88%D0%B5%D0%BB+%D1%81%D0%BF%D0%B0%D1%82%D1%8C.html
Но этого не происходит. Почему? | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(19.08.2011 в 19:28)
| | может так
RewriteRule /search.php?query=^(.*)$ /поиск_$1.html [R] | |
|
|
|
|
|
|
|
для: f111
(19.08.2011 в 19:45)
| | Неа... Линк http://localhost/tests/Apache/search.php?query=777
Так и остается в первозданном виде. | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(19.08.2011 в 21:00)
| | .. | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(19.08.2011 в 19:28)
| | Что делать-то? | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(20.08.2011 в 12:25)
| | Вопрос решен! Точку на экранировал! Какие флаги надо добавить, что перенаправление было, а адрес в адресной строке, остался то же?? | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(19.08.2011 в 19:28)
| | Добавьте флаг [QSA], без него RewriteRule отбрасывает все GET-параметры. | |
|
|
|
|
|
|
|
для: cheops
(20.08.2011 в 16:57)
| | Подскажите, почему не работает? выдает 404
Options FollowSymLinks
RewriteEngine On
RewriteRule ^/pages/([a-z]+)\.html$ http://www.google.ru/search?q=$1
|
И не могли бы вы подсказать где можно найти много много хорошей качественной инфы о htaccess кроме htaccess.net.ru? | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(21.08.2011 в 11:41)
| | Вы включите лог mod_rewrite - будет много проще отлаживать
RewriteLog "logs/rewrite.log"
RewriteLogLevel 9
|
PS Связанного изложения информации по конфигурации Apache я давно не видел. Мы как-то хотели писать книгу по нему, но все забуксовало и заглохло. | |
|
|
|
|
|
|
|
для: cheops
(21.08.2011 в 11:51)
| | Ошибка сервера 500.
В логах сервера RewriteLog not allowed here | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(21.08.2011 в 11:58)
| | А вы его где размещаете? Эти директивы доступны только для виртуального хоста? Вы сейчас на локальной машине отлаживаете или на сервере? | |
|
|
|
|
|
|
|
для: cheops
(21.08.2011 в 12:08)
| | На локальной. Файл логов лежит в папке с htaccess
Пробовал и RewriteLog "D:\sites\site.ru\www\1.log" и RewriteLog "1.log" | |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(21.08.2011 в 12:11)
| | Пропишите эти директивы в виртуальном хосте, они не работают в .htaccess. | |
|
|
|
|
|
|
|
для: cheops
(21.08.2011 в 12:27)
| | Я чет не понял что он имел ввиду.
127.0.0.1 - - [21/Aug/2011:20:10:26 +0400] [site.ru/sid#99ad88][rid#241ce80/initial] (3) [perdir D:/sites/site.ru/www/] strip per-dir prefix: D:/sites/site.ru/www/pages/readingfor -> pages/readingfor
127.0.0.1 - - [21/Aug/2011:20:10:26 +0400] [site.ru/sid#99ad88][rid#241ce80/initial] (3) [perdir D:/sites/site.ru/www/] applying pattern '^/pages/(.*)$' to uri 'pages/readingfor'
127.0.0.1 - - [21/Aug/2011:20:10:26 +0400] [site.ru/sid#99ad88][rid#241ce80/initial] (1) [perdir D:/sites/site.ru/www/] pass through D:/sites/site.ru/www/pages/readingfor
127.0.0.1 - - [21/Aug/2011:20:10:26 +0400] [site.ru/sid#99ad88][rid#2420e90/initial] (3) [perdir D:/sites/site.ru/www/] strip per-dir prefix: D:/sites/site.ru/www/favicon.ico -> favicon.ico
127.0.0.1 - - [21/Aug/2011:20:10:26 +0400] [site.ru/sid#99ad88][rid#2420e90/initial] (3) [perdir D:/sites/site.ru/www/] applying pattern '^/pages/(.*)$' to uri 'favicon.ico'
127.0.0.1 - - [21/Aug/2011:20:10:26 +0400] [site.ru/sid#99ad88][rid#2420e90/initial] (1) [perdir D:/sites/site.ru/www/] pass through D:/sites/site.ru/www/favicon.ico
|
| |
|
|
|
|
|
|
|
для: Гавриленко Дмитрий
(21.08.2011 в 20:16)
| | Ага, видите где происходит отказ, регулярное выражение ждет слэш, а его нет
'^/pages/(.*)$' to uri 'pages/readingfor'
| исправьте правила следующим образом
Options FollowSymLinks
RewriteEngine On
RewriteRule ^pages/([a-z]+)\.html$ http://www.google.ru/search?q=$1
|
| |
|
|
|