Вопрос по синтаксису в .htaccess

L1
На сайте с 24.02.2014
Offline
95
291

Добрый день, прочитал наверное статей 15 по .htaccess, все не понравилось, как-то неоднозначно


RewriteCond %{HTTP_HOST} ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]

Интересует вторая строчка, первым параметром RewriteRule я так понимаю идет параметр URL, следующий за http://site.ru/test/lalala.html

т.е. в данном случае (test/lalala.html)-?

Поясните пожалуйста еще вот этот момент


RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
RewriteRule ^index\.php$ http://www.site.ru/ [R=301,L]

зачем нужно проверять наличие букв от A-Z в начале THE_REQUEST в объеме от 3 до 9 символов? Почему нельзя просто искать наличие index.php?

Вот еще один вариант от избавления дублей с index.php


RewriteCond %{THE_REQUEST} ^.*/index.php
RewriteRule ^(.*)index.php$ http://%{HTTP_HOST}/$1 [R=301,L]

Опять не ясный момент, в RewriteRule берут что-то перед index.php - (.*) и затем добавляют к {HTTP_HOST} , для чего это сделано, что там может быть в переменное $1 перед index.php

[umka]
На сайте с 25.05.2008
Offline
456
#1
lampa17:
Добрый день, прочитал наверное статей 15 по .htaccess, все не понравилось, как-то неоднозначно

Не нужно читать статьи. Читайте мануалы: http://httpd.apache.org/docs/2.2/mod/directives.html

Там всё написано более чем однозначно!

lampa17:
Поясните пожалуйста еще вот этот момент
зачем нужно проверять наличие букв от A-Z в начале THE_REQUEST в объеме от 3 до 9 символов?

Это привязка к http-методу (GET, PUT, HEAD, POST, DELETE, и т.д.).

lampa17:

Почему нельзя просто искать наличие index.php?

Потому что нужно искать с начала строки, иначе есть шанс найти не то, что нужно.

lampa17:

Вот еще один вариант от избавления дублей с index.php
Опять не ясный момент, в RewriteRule берут что-то перед index.php - (.*) и затем добавляют к {HTTP_HOST} , для чего это сделано, что там может быть в переменное $1 перед index.php

Это сделано для избавления от дублей, а точнее, для избавления от "index.php" в конце урлов.

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

Лог в помощь!

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий