Прежде чем начать следует заметить, что браузер кэширует 301 редирект, после которого переход на новую страницу будет проходить без участия apache. Для этого можно установить дополнения к браузеру, которые чистят кэш (например close and forget). Также для тестирования понадобится - чтение HTTP заголовков, в которых будет четко написано: происходил ли редирект, откуда, куда (add-ons "Live HTTP Headers"). В случае неудачи, не забываем смотерть в логи апача.
Также перед началом работы следует убедиться, что mod_rewrite-enable. И принудительно включить его еще раз.
Константа %{HTTP_HOST} - возвращает главный адрес сайта. Перед ней желательно ставить http:// , а то будет происходить путаница и возвращаемый адрес, будет считаться путем к файлу.
Также встречаются %1 переменные ,которые указыват первую группу в RewriteCond. (Но это нужно более точно уточнить)
Также перед началом работы следует убедиться, что mod_rewrite-enable. И принудительно включить его еще раз.
sudo a2enmod rewrite;В локальный хост следует не забыть установить AllowOverride All . И только потом:
sudo service apache2 restartЗатем пару пробничков. В .htaccess файле:
RewriteEngine onЭтот пример, делает редирект на index.html, когда пользователь не дописал расширение html до конца (забыв про последнюю букву).
RewriteRule ^(.+)\.htm$ http://%{HTTP_HOST} [R=permanent]
Константа %{HTTP_HOST} - возвращает главный адрес сайта. Перед ней желательно ставить http:// , а то будет происходить путаница и возвращаемый адрес, будет считаться путем к файлу.
Следует заметить, что в RewriteRule , стандартно обрабатываются только URI и символ начала строки "^", будет означать начало не всего адреса URL(www.google.com/map/haha), а только начало URI(/map/haha). Для полного обрабатывания, следует явно указывать http, www.Следующий пример, будет прит недописанных htm, будет дописывать букву "l":
RewriteEngine onгде $1 - переменная содержащая результат с первой группы(первых скобочек в первом параметре RewriteRule .
RewriteRule ^(.+)\.htm$ $1.html [R=permanent]
Также встречаются %1 переменные ,которые указыват первую группу в RewriteCond. (Но это нужно более точно уточнить)
Комментариев нет:
Отправить комментарий