网址重写无法正常工作

时间:2012-10-08 16:16:25

标签: php url-rewriting

我有类似

的东西
header('Location:index.php?login_error='.urlencode($error));

我想成功

header('Location:error/'.urlencode($error));

使用重写。我正在使用的规则是

RewriteRule ^error/([a-zA-Z]+)$ index.php?login_error=$1 [QSA]

但它不起作用可以有人请指导。任何帮助都将受到高度赞赏。

.htaccess文件

RewriteEngine On

RewriteRule ^login/?$ index.php [NC,L]
RewriteRule ^home/?$ home.php [NC,L]
RewriteRule ^logout/?$ logout.php [NC,L]
RewriteRule ^error/([a-zA-Z]+)$ index.php?login_error=$1 [QSA]  

1 个答案:

答案 0 :(得分:1)

OP报告一切正常,但似乎URL中有a-zA-Z个正则表达式,所以只需重写

RewriteRule ^error/([^/]+)$ index.php?login_error=$1 [QSA]

做了神奇的事。

正则表达式中的

[^/]+表示“任何不是斜线重复1次或更多次的字符”