2015-01-12 3 views
0

У меня есть домен, который имеет поддомены (дополнение). Я пытаюсь перенаправить пользователей из основного (старого) домена в один из поддоменов (новый).Перенаправление через .htaccess не работает

Сначала я попытался перенаправить все, что пользователь вводит в OLD-домен, за исключением одной страницы и одного каталога ... Теперь эта функция EXCEPT выходит из-под контроля. Я пытаюсь и реализую все возможные варианты, но некоторые из них дают ошибку и останавливают перенаправление.

Вот строки из файла .htaccess, который я пытаюсь:

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{HTTP_HOST} oldrootdomain.com [NC] 

RewriteRule ^/view_card.php(.*)$ http://newsubdomain.com/view_card.php$1 
RewriteRule ^/m/(.*)$ http://oldrootdomain.com/m/$1 

RewriteRule ^(.*)$ http://newsubdomain.com/ [R=301,L] 
+1

Вы должны указать подробную информацию об ошибке, которую видите. Помогает ли вам добавить флаг '[L]' после первых двух правил? И вам нужно снова включить 'RewriteCond' для каталога'/m/'. У вас может быть только один 'RewriteRule' за' RewriteCond' – arco444

ответ

0

Кажется, вы бежите в inifinite петлю. Вы НЕ хотите перенаправлять эти исключения. Так что попробуйте некоторые дополнительные RewriteCond s

RewriteCond %{HTTP_HOST} oldrootdomain.com [NC] 
RewriteCond %{REQUEST_URI} !view_card.php$ 
RewriteCond %{REQUEST_URI} !m/.*$ 
RewriteCond %{REQUEST_URI} !m$ 

RewriteRule ^(.*)$ http://newsubdomain.com/ [R=301,L] 

Кроме того, вы, кажется, не поняли RewriteCond/RewriteRule вещь целиком

Любой последовательный поток из RewriteCond s делает только влияет на непосредственно послеRewriteRule

+0

Он по-прежнему перенаправляет oldrootdomain.com/m на http://newsubdomain.com/ :( – sana

+0

@sana Другие работают? Я сделал редактирование своего кода уход за example.com/m – HerrSerker

+0

Не работает :( – sana