2012-11-26 38 views
1

我有htaccess重写mods使用虚荣URL。我试图手动将一个$ _GET变量传递给一个登录页面,告诉人们登录失败,但由于vanity 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

更改你的.htaccess代码到这一点:

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