2013-05-19 3 views
0

В моем файле .htaccess, этот код работает отлично:URL Rewrite => Переменная для SUBDOMAIN

RewriteCond %{HTTP_HOST} ^(.+).mydomain.com$ 
RewriteRule ^(.*)$ http://mydomain.com/profile.php?username=%1 [R,L]

Например, когда я пишу этот URL:

http://XXX.mydomain.com

Он перенаправляет:

http://mydomain.com/profile.php?username=XXX

НО проблема в том, что я просто хочу обратное:

Когда я пишу URL:

http://www.mydomain.com/profile.php?username=XXX

Я хочу перенаправление к:

http://XXX.mydomain.com

Я попробовал все возможности, но ничего не получалось.

Может ли кто-нибудь помочь мне, пожалуйста?

+0

ли мой ответ помощь? У вас это работает? –

ответ

0

Попробуйте

RewriteEngine on 
RewriteBase/

RewriteCond %{HTTP_HOST} !^(www\.)?mydomain\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(.+)\.mydomain\.com$ [NC] 
RewriteRule ^.*$ http://www.mydomain.com/profile.php?username=%1 [L] 

Хорошо, www теперь необязательной.

EDIT: Перенаправление sub.domain.com/someother/page.php, а также.

RewriteCond %{HTTP_HOST} !^(www\.)?mydomain\.com$ [NC] 
RewriteCond %{HTTP_HOST} ^(.+)\.mydomain\.com$ [NC] 
RewriteRule ^(profile\.php)?$ http://www.mydomain.com/profile.php?username=%1 [L] 
RewriteRule ^(.+)$ http://www.mydomain.com/$1 [L] 

Это перенаправление будет

eli.mydomain.com => http://www.mydomain.com/profile.php?username=eli 
eli.mydomain.com/profile.php => http://www.mydomain.com/profile.php?username=eli 

eli.mydomain.com/contactus.php => http://www.mydomain.com/contactus.php 
eli.mydomain.com/help/search.php?q=faq => http://www.mydomain.com/help/search.php?q=faq 
+0

Это не работает :( – Eli

+0

Вы хотите, чтобы 'www' был факультативным? Проверьте обновление. –

+0

@Eli Получил ли он работу? –

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