2013-04-14 3 views
3

У меня есть несколько доменов, указывающих на одно и то же веб-пространство (www.domain1.com, www.domain2.com, www.domain3.com и т. Д.). Только при использовании одного домена, например. www.domain1.com, я хочу перенаправить пользователей из разных коротких ссылок, например. www.domain1.com/link или www.domain1.com/link2, к другому URL-адресу.htaccess перенаправляет только на один домен

Я собрал следующее. RewriteCond, вероятно, хорошо, но RewriteRules не работает:

RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com [NC] 
RewriteRule ^/test$ http://www.domain1.com/xyz.php [R=301] 
RewriteRule ^/test2$ http://www.domain1.com/abc.php [R=301] 
RewriteRule ^/test3$ http://www.domain1.com/abc/test10.php [L,R=301] 

У вас есть совет, как правильный RewriteRules должен выглядеть?

ответ

2

Надеюсь, это поможет вам двигаться в правильном направлении ...

RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com [NC] 
RewriteCond %{REQUEST_URI} ^(/test/)$ [NC] 
RewriteRule ^(.*)$ http://www.domain1.com/xyz.php [R=301] 

RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com [NC] 
RewriteCond %{REQUEST_URI} ^(/test2/)$ [NC] 
RewriteRule ^(.*)$ http://www.domain1.com/abc.php [R=301] 

RewriteCond %{HTTP_HOST} ^(www\.)?domain1\.com [NC] 
RewriteCond %{REQUEST_URI} ^(/test3/)$ [NC] 
RewriteRule ^(.*)$ http://www.domain1.com/abc/test10.php [L,R=301] 
+0

Спасибо! Это выглядит сложным ... Поэтому мне нужно добавить три строки для каждого URL-адреса переадресации. У меня есть 30+ URL-адресов переадресации в моем файле htaccess. Можно ли написать только один RewriteCond, под ним в одной строке каждый перенаправить, а RewriteCond применяется ко всем Перенаправлениям: 1-я строка: RewriteRule ..., 2-я строка: Перенаправление ..., 3-я строка: Перенаправление ... и т. Д. .? – flip

+0

Фактически, если файл .htaccess применяется только к одному домену (например, 'domain1.com'), вы должны иметь возможность исключить строки, которые говорят' RewriteCond% {HTTP_HOST}^(www \.)? Domain1 \ .com [NC ] '... Кроме этого, хотя я не уверен, что многое другое можно сделать с помощью .htaccess. Тем не менее, используя PHP, вы могли гипотетически поместить файл с именем 'index.php' в каждый из перечисленных вами каталогов, а внутри каждого индексного файла поместить что-то вроде: ' jerdiggity

Смежные вопросы