Пример:
RewriteCond %{HTTP_HOST} ^www.site\.ru$ [NC]
RewriteRule ^(.*)$ http://site.ru/$1 [R=301,L]
Макрос $1 обозначает то, что находится внутри первой пары скобок RewriteRule.
Выражение .* обозначает любое количество любых символов.
Пробуем правило, открываем страницу www.site.ru/page - под RewriteCond подходит. Поэтому срабатыает RewriteRule, берутся все эти символы и вставляются вместо $1.
Должно получиться:
http://site.ru/www.site.ru/page
Но получается
http://site.ru/page
То есть, в круглых скобках RewriteRule находится page.
Почему только page, если .* это любое количество любых символов?
- 30.12.2017 21:31
- 31.12.2017 01:31
Говорят, вдумчивое чтение документации в таких случаях помогает:
https://httpd.apache.org/docs/2.0/mo...ml#rewriterule
https://httpd.apache.org/docs/2.0/mi...riteguide.html
Хорошая статья с разъяснениями на русском: https://habrahabr.ru/company/sprinthost/blog/129560/
Первому RewriteRule передается путь от того места, где находится .htaccess, до запрошенного файла. Эта строка никогда не начинается со "/". Последующим RewriteRule передается результат предыдущих преобразований.Спасибо сказали:
globestar(01.01.2018),
Тэги топика:
Похожие темы
Темы | Раздел | Ответов | Последний пост |
---|---|---|---|
Странный дорвей или я что-то не понимаю | Вопросы от новичков | 5 | 19.02.2013 23:14 |
Вот это я понимаю телефон! И цена не такая большая от 10000 руб! | Оффтоп и свободные темы | 17 | 12.08.2012 23:22 |
Выдача Google. Подскажите чего я не понимаю | 9 | 22.09.2011 16:55 | |
Как работает дорвей - как я это понимаю | Дайджест блогосферы | 4 | 24.06.2010 03:04 |