1

バニティURLを使用するようにhtaccessrewritemodsがあります。ログインに失敗したことを知らせる$_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(Query String Append)フラグを使用p=loginして既存のクエリ文字列に追加することです
  • ご覧のとおり、私が推測したように、2つのルールを1つにまとめることができます
于 2012-11-27T03:11:48.123 に答える