ここに私の書き換えルールがあります:
###########
# 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://[マイホスト名]///////////////////////////
これらのスラッシュはすべて削除されていません。そして、まだ index.php ページが表示されています。次のアドレスを挿入すると:
http://[MY-HOST-NAME]/members///
これらの複数のスラッシュはすべて削除されておらず、メンバーの index.php ページが表示されています。等々...
誰か助けてくれませんか?どうもありがとう!