1

我有 htaccess 重写 mods 来使用虚 url。我试图手动将 $_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]
4

1 回答 1

1

将您的 .htaccess 代码更改为:

RewriteEngine On
RewriteBase /ncms/admin
RewriteRule ^([a-zA-Z0-9-]+)/?$ index.php?p=$1 [L,QSA]
  • 技巧是使用 QSA(查询字符串附加)标志附加p=login到现有的查询字符串
  • 如您所见,您的两条规则可以按照我的建议合并为一条
于 2012-11-27T03:11:48.123 回答