htaccess переписать, показывая избыточную корневую папку - PullRequest
0 голосов
/ 29 декабря 2011

Я искал, но не нашел решения именно этой проблемы.

У меня есть домен веб-сайта mainwebsite.com и несколько других доменов верхнего уровня, управляемых в htaccess. У меня проблема с alternateomain.com и его подкаталогами.

#alternatedomains

RewriteCond %{HTTP_HOST} alternatedomain.com
RewriteCond %{REQUEST_URI} !/alternatedomain/
RewriteRule ^(.*)$ alternatedomain/$1 [L] 

Это прекрасно работает, alternatedomain.com с радостью обслуживает mainwebsite.com/alternatedomain.

Проблема в том, что у меня есть доступ к любой папке, например

alternatedomain.com/folder

, URL в строке заголовка меняется на

alternatedomain.com/alternatedomain/folder/

и это сводит меня с ума. Не могу понять, что я делаю не так!

РЕДАКТИРОВАТЬ: Это происходит только при попытке доступа к alternate.com/folder, а не при наличии суффикса /, поэтому alternate.com/folder/ работает нормально, без избыточного имени папки

Ваша помощь очень ценится!

1 Ответ

0 голосов
/ 29 декабря 2011

Это потому, что mod_dir (который добавляет /) не знает, что URL переписан.

Вы можете просто отключить DirectorySlash с помощью

DirectorySlash Off

Это, однако, будет делать запросы к alternatedomain.com/folder, в результате 404 не найден. Вы можете исправить это с помощью некоторого rewriterule. Таким образом, полное решение будет выглядеть примерно так:

DirectorySlash Off
RewriteCond %{DOCUMENT_ROOT}/$0 -d
RewriteRule ^alternatedomain/(.+[^/])$ /$1/ [R,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...