ここに私の書き換えルールは以下のとおりです。それが生産だ場合複数の末尾のスラッシュを削除するにはどうすればよいですか?
###########
# Rewrite #
###########
# Settings
RewriteEngine On
RewriteBase/
# Cache Busting
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} "^(.+)\.\d+\.(css|js)$" [NC]
RewriteRule "^.*$" "/%1.%2" [L]
# No Index
RewriteCond %{THE_REQUEST} "\ /.*index\.php.*\ " [NC]
RewriteRule "^(.*)index\..+$" "/$1" [L,NC,R=301]
# No Question Mark
RewriteCond %{THE_REQUEST} "\ /[^?]*\?\ "
RewriteRule "^(.*)$" "/$1?" [L,R=301]
# WWW
# RewriteCond %{HTTP_HOST} !"^(?:static|www)\.(.+)$" [NC]
# RewriteCond %{HTTPS}s "^on(s)|"
# RewriteRule "^(.*)$" http%2://www.%1/$1 [L,R=301]
すべてが(任意の提案はパフォーマンスを改善するために、またはより良い正規表現のためにとにかく、歓迎されている)が、私は奇妙な状況を経験していると私は理解することはできません正常に動作します私の書き換えルールやデフォルトのApacheの振る舞いによって。 私のURLが "/"で終わる場合、書き換えなくても、できるだけ多くのスラッシュを付けることができます。例えば
、私のアドレスバーに、私は次のように挿入した場合:
ます。http:// [MY-HOST-NAME] //////////////// ///////////
これらのスラッシュはすべて削除されていません。そして私はまだindex.phpのページを見ています。 私は次のアドレスを挿入した場合:
ます。http:// [MY-HOST-NAME] /メンバー///
をすべてのものを複数のスラッシュが削除されていないと私は私のメンバーを見ることができますindex.phpページ。 など...
誰かが私を助けてくれますか?どうもありがとう!
まあ、正確にどのルールがスラッシュを書き換え、なぜでしょうか? (私は気にしませんし、あまりにも多くのスラッシュを "ユーザーエラー"として扱いますが...) –
なぜそれは重要ですか? *あなたのウェブサイト*に余分な末尾のスラッシュが追加されてはいけない場合は、それを心配しないでください。ユーザーが手動で追加する余分なスラッシュを削除するために余分なHTTPリクエストを無駄にすると、最終的に表示されるページに何の影響も与えません。 – animuson
それが問題なのかどうかはなぜ重要なのですか? 解決策があれば投稿してください。あなたがしていない場合は、ちょうど答えていない。私は、 "/"と "//"(Google Botを含む)の両方をリクエストしているボットの量が多いことを知り、インデックスエンジンを2台のエンジンでインデックスにすることができます。本当にSEOに優しいわけではありません。 –