1

.htaccesファイルでこの書き換えルールを使用しています

RewriteRule ^(main|login|apps|user)/?$ index.php?_app_schema=system&_app_group=$1&%{QUERY_STRING} [NC,L]
RewriteRule ^(main|login|apps|user)/([A-z0-9]+)/?$ index.php?_app_schema=system&_app_group=$1&_app_option=$2&%{QUERY_STRING} [NC,L]
RewriteRule ^(main|login|apps|user)/([A-z0-9]+)/([A-z0-9]+)/?$ index.php?_app_schema=system&_app_group=$1&_app_option=$2&_app_action=$3&%{QUERY_STRING} [NC,L]

ユーザーがこれを行うのを避けたい

mysite.com////// user ///// login

mysite.com//main ////

mysite.com///apps////app001

どういうわけか、私は私が欲しかったすべてのスラッシュを置くことができます。

どうすればこれを回避できますか?

4

1 に答える 1

2

あなたの問題は、Apacheがルールに到達する前にURLを正規化していることだと思います。%{THE_REQUEST}を使用して実際のリクエストにアクセスできますが、その変数は完全にサニタイズされないため、注意が必要です。RewriteCondルールを使用してTHE_REQUESTを一致させたいものと比較するか、RewriteCondを使用して複数のスラッシュのインスタンスをチェックし、それらの要求を開始することをお勧めします。

于 2012-12-17T22:54:07.383 に答える