2012-03-15 2 views
0

Мне удалось установить это условие и правило ниже вместе, чтобы перенаправить страницу, чтобы включить index.shtml в конце, но я не понимаю, что означает эта часть Rewrite - часть ^$. Я считаю, что ^ средства запуска и $ это конец, но в этом контексте я не понимаю его значение в «английском» и как она работает:Объясните это правило перезаписи?

RewriteCond %{HTTP_HOST} ^www\.example1\.test\.com [NC] 
RewriteRule ^$ http://www.example1.test.com/index.shtml [R,L] 

Спасибо.

ответ

2

^ это начало строки, $ конец. Если между ними нет ничего, как в случае ^$, это означает пустую строку. Поскольку путь, ведущий к текущему каталогу, игнорируется, часть URL-адреса, которая соответствует, равна послеhttp://www.example1.test.com/. Соответствие «пустой строки» после, что означает соответствие самого URL, например: без файла или чего-либо еще. Таким образом, это перенаправляет корневой URL-адрес в index.shtml

+1

+1 для технического объяснения, мое регулярное выражение является ржавым. – Stijn

+0

Спасибо за это ... отличное объяснение – frodo

1

Если пользователь посещает точный URL-адрес www.example1.test.com, он перенаправляется на номер http://www.example1.test.com/index.shtml.

Полезный инструмент: http://martinmelin.se/rewrite-rule-tester/

+0

Спасибо ... so^$ говорит совпадение «все от начала до конца www.example1.test.com» и применяет к нему index.shtml? – frodo

+0

Nice link, я всегда говорил, чтобы проверить regexp здесь: http://www.quanetic.com/Regex –

Смежные вопросы