Показать сообщение отдельно
  #1 (permalink)  
Старый 01.08.2012, 09:19
Кандидат Javascript-наук
Отправить личное сообщение для Slavenin Посмотреть профиль Найти все сообщения от Slavenin
 
Регистрация: 20.11.2010
Сообщений: 143

Замкнутое перенаправление .htaccess
сем доброго времени суток.
Есть простая, вроде бы, задача: если в адресе есть слово 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
__________________

Ответить с цитированием