2015-10-05 44 views
1

我想重寫一些網址。所以,我有這userAction.php頁,我把它改寫爲/login/這樣奇怪的行爲與URL重寫

RewriteRule ^login/$ /userAction.php [L] 
現在

在該頁面登錄我有兩種形式 - 登錄和註冊。當用戶進行註冊並完成註冊時,頁面仍然是userAction.php,但是消息:userAction.php?action=joined。我想將其重寫爲login?action=joined。下面是我嘗試過,但它重定向我404錯誤

RewriteRule ^login?action=joined/$ /fun-second/userAction.php?action=joined [L] 

所以這是整個.htaccess

RewriteRule ^login/$ /userAction.php [L] 
RewriteRule ^login/?action=joined/$ /userAction.php?action=joined [L] 

這是重定向時註冊成功是

header('Location: login/?action=joined/'); 
exit; 

注意:與正常的URL的工作,並沒有問題。

回答

1

你會使用%{QUERY_STRING}變量來匹配它。

RewriteEngine On 

RewriteCond %{QUERY_STRING} ^(action=joined)$ [NC] 
RewriteRule ^login/$ /userAction.php?%1 [NC,L] 

RewriteRule ^login/$ /userAction.php [NC,L] 

規則的順序也很重要。或者,您可以嘗試以下方法:

RewriteEngine On 
RewriteRule ^login/$ /userAction.php [QSA,NC,L] 

注意上面的QSA標誌。

+0

謝謝,但仍然重定向到404頁面.. –