2015-06-05 2 views
1

Я пытаюсь перенаправить домен третьего уровня (sub.domain1.com), но только если он соответствует подкаталогу:перенаправить один домен на другой при удалении подкаталога с Ури

http://sub.domain.com/somefolder 

Это будет перенаправлены на другой домен (domain2.com), но необходимо, чтобы удалить/SomeFolder часть так сказать:

http://sub.domain.com/somefolder/about 

будет читать, как это на редиректа:

http://domain.com/about 

Это то, что я пытался до сих пор, и это, кажется, не работает:

RewriteEngine On 
RewriteCond %{HTTP_HOST} (^|\.)sub\.domain1\.com$ [NC] 
RewriteCond %{REQUEST_URI} ^/somefolder$ [NC] 
RewriteRule ^/somefolder/$ https://domain2.com/$ [R=301,L] 

Может кто-нибудь сказать мне, что я сделал не так? Я начинаю понимать htaccess, но он по-прежнему читается как voodoo для меня ...

Примечание: оба домена указывают на один и тот же сервер, за исключением того, что domain1.com указывает на корневую веб-папку, а domain2.com указывает на/webroot/somefolder, поэтому он является подкаталогом внутри корня.

ответ

2

Вы должны добавить группировку в своем регулярном выражении и в обратной ссылке редиректа:

RewriteEngine On 
RewriteCond %{HTTP_HOST} (^|\.)sub\.domain1\.com$ [NC] 
RewriteRule ^somefolder/(.*)$ https://domain2.com/$1 [R=301,L] 

И вам не нужно условие, чтобы проверить запрос URI, так как вы уже делаете, что в правиле регулярное выражение.

+0

Я знал, что это что-то простое. Спасибо! –