我正在尝试重写一些网址。所以我的页面为userAction.php
,我将其重写为/login/
,如此
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;
注意:正常的网址正常,没有问题。
答案 0 :(得分: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
标记。