2013-10-11 53 views
1

我用了實用的教學課程on this site到我的動態URL重寫爲靜態的,我的繼承人的工作代碼:mod_rewrite的動態與靜態的子域

RewriteEngine on 

RewriteRule ^users/([^/]+)/?$ /beta/user.php?u=$1 [L] 

# Externally redirect client requests for old dynamic URLs to equivalent new static URLs 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /beta/user\.php\?u=([^&]+)\ HTTP/ 
RewriteRule ^/beta/user\.php$ http://www.mywebsite.com/users/%1? [R=301,L] 

和它的偉大工程,使這個網址

www.mywebsite.com/beta/user.php?u=blabla 

也可以理解爲

www.mywebsite.com/users/blabla 

現在,問題出在哪裏? 所以,我工作的一個移動網站

m.mywebsite.com 

,我想做同樣的事情含有user.php的「米」的子域。 這樣

m.mywebsite.com/user.php?u=blabla 

將重寫了進入

m.mywebsite.com/users/blabla 

然而,當我改變上述的.htaccess,它沒有工作。

那麼如何重寫子域呢?提前致謝!

+0

你複製同樣htaccess的上方插入到移動站點文件夾?我認爲這將是最簡單的解決方案?很明顯,在最後一行也改變了網站。 – Novocaine

回答

1

第一條規則中存在次要的正則表達式問題。

下面是更正後的代碼應爲移動網站也工作:

RewriteEngine on 

# Externally redirect client requests for old dynamic URLs to equivalent new static URLs 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\s/+beta/user\.php\?u=([^&\s]+) 
RewriteRule^/users/%1? [R=301,L] 

RewriteRule ^users/([^/]+)/?$ /beta/user.php?u=$1 [L,NC,QSA]