сем доброго времени суток.
Есть простая, вроде бы, задача: если в адресе есть слово htdocs, то убрать это слово из адреса, если слова нет, то дополнить им адрес и отобразить страницу.
например, есть адрес site.ru/htdocs/catalog/
в этом случае нужно отобразить страницу htdocs/catalog/ как site.ru/catalog/
если же идет прямое обращение site.ru/catalog/
нужно просто отобразить страницу htdocs/catalog/ без изменения адресной строки
вторую задачу я решил, а вот с первой что-то никак не пойму...
Возникает то 500, то простой редирект на несуществующую страницу. Если же убрать у второго правила L , то возникает бесконечный редирект...
Код:
|
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/htdocs.*
RewriteRule ^(.*)$ /htdocs/$1 [QSA,L]
RewriteCond %{REQUEST_URI} ^/htdocs/(.*)
RewriteRule ^(.*)$ /%1 [R=301,QSA, L]
ErrorDocument 404 /404.php |
пробовал такой вариант:
Код:
|
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/htdocs.*
RewriteRule ^(.*)$ /htdocs/$1 [QSA,L]
RedirectMatch 301 /htdocs/ /404.php
ErrorDocument 404 /404.php |
в этом случае всегда происходит перенаправление на 404.php