.htaccess |虚荣URL导致手动设置$ _GET变量不生效

时间:2012-11-26 23:01:10

标签: apache .htaccess

我有htaccess重写mods来使用虚荣网址。我试图手动将$ _GET变量传递给登录页面,告诉人们登录失败,但由于虚荣URL,手动传递的$ _GET变量被忽略。我该如何解决这个问题?

这是我想要传递的内容,

http://mysite.com/login?failed=1

但它工作的唯一方法是执行以下操作,

http://mysite.com/?p=login&failed=1

这会产生明显的丑陋效果。

我的htaccess文件,

RewriteEngine On
RewriteBase /ncms/admin
RewriteRule ^([a-zA-Z0-9-]+)$ index.php?p=$1 [L]
RewriteRule ^([a-zA-Z0-9-]+)/$ index.php?p=$1 [L]

1 个答案:

答案 0 :(得分:1)

将.htaccess代码更改为:

RewriteEngine On
RewriteBase /ncms/admin
RewriteRule ^([a-zA-Z0-9-]+)/?$ index.php?p=$1 [L,QSA]
  • Trick是使用QSA(查询字符串追加)标记将p=login附加到现有查询字符串
  • 正如你所看到的,你可以看到你的2条规则可以合并成一个