Редирект с www перед ним не работает? - PullRequest
0 голосов
/ 14 марта 2012

У меня есть следующее правило, которое перенаправляет страницу «example2.test.com» на «www.example2.test.com/index.shtml», т. Е. Она добавляет к ней index.shtml

RewriteEngine On
RewriteCond% {HTTP_HOST} ^ example2.test.com $
RewriteRule (. *) http://www.example2.test.com/index.shtml [R, L]

Если я изменю правило, чтобы попытаться поймать, если пользователь входит в www .example2.test.com, как показано ниже, я получаю сообщение об ошибке, сообщающее, что слишком много перенаправлений

RewriteEngine On
RewriteCond% {HTTP_HOST} ^ www.example2.test.com $
RewriteRule (. *) http://www.example2.test.com/index.shtml [R, L]

Есть что-то, что я здесь скучаю ?? - Я немного новичок в этом ..

Спасибо ...

1 Ответ

1 голос
/ 14 марта 2012

RewriteCond в основном оператор if, и по умолчанию сервер будет пытаться получить доступ к странице индекса, поэтому ваш второй пример говорит:

if uri is   www.example2.test.com
redirect to www.example2.test.com

Вы создаете бесконечный цикл, потому что, как только он перенаправляется, он переоценивается, что перенаправляет его.

Если вы не получаете эту страницу index.shtml при посещении этого URL, вам может понадобиться добавить index.shtml в ваш каталог каталогов apache . так что откройте свой httpd.conf и найдите, где написано что-то вроде

DirectoryIndex index.html

и добавьте к нему index.shtml, если его там еще нет, поэтому вы получите

DirectoryIndex index.html index.shtml
...