2013-10-16 60 views
2

我很難搞清楚我該如何做到這一點。.htaccess重定向/重寫問題

我希望所有的請求www.mydomain.com/manager重定向到m.mydomain.com

我想:

# Friendly URLs for the manager 
RewriteCond %{HTTP_HOST} ^(www.)?cloudcms.co$ 
RewriteRule ^manager/?$ http://m.cloudcms.co/ [NC,L,R] 

RewriteCond %{HTTP_HOST} ^(m.|manager.)?cloudcms.co$ 
RewriteRule ^(/)?$ manager/ [L,QSA,NC] 

然而,唯一真正的一個正確改寫爲第二個條件。

我也曾嘗試以下

# Friendly URLs for the manager 
RewriteCond %{HTTP_HOST} ^(www.)?cloudcms.co$ 
Redirect 301 /manager http://manager.cloudcms.co 

RewriteCond %{HTTP_HOST} ^(m.|manager.)?cloudcms.co$ 
RewriteRule ^(/)?$ manager/ [L,QSA,NC] 

但它忽略了第二重寫

+0

網址是哪不是爲你工作? – anubhava

+0

排名第一。嘗試強制所有請求到www.mydomain.com/manager重定向到m.mydomain.com – Kevin

+0

您有代理的'P'標誌,因此它不會更改瀏覽器中的URL,但仍會爲您提供來自'm .mydomain.com' – anubhava

回答

2

按照我上面的評論:

Is there another .htaccess in /manager文件夾或任何其他在本.htaccess`

我懷疑OP還有另一個.htaccess某處你DOCUMENT_ROOT內。嘗試刪除,這個簡單的重定向將開始工作。

OP問:

How would I be able to do this for any domain that could come in and try hitting the /manager folder?

你的第一個重定向規則只是更改爲:

# if not already on mobile domain 
RewriteCond %{HTTP_HOST} !^m\. [NC 
RewriteRule ^manager/?$ http://m.cloudcms.co/ [NC,L,R=301] 
0

你可能不想P標誌,這是給你的反向代理。試着用一個R替換是:

RewriteRule ^manager/?$ http://m.mydomain.com/ [NC,L,R] 
+0

對不起。那也不管用 – Kevin