だから私には2つのルールがあります。各ルールは、.htaccess
それ自体である場合に正確に実行されますが、両方のルールが存在する場合、それらは互いに競合し始めます。
RewriteCond %{REQUEST_URI} ^(.*)\.html$
RewriteRule ^(.*)\.html$ index.php?id=$1 [QSA,L]
上記のルールは、番号がで終わる場合にのみ、発言権を取得して番号をhttp://domain.com/12.html
渡すために正常に機能します(メモファイルは存在しません!)12
index.php
.html
12.html
RewriteCond %{REQUEST_URI} !^(.*)\.html$
RewriteRule ^(.*)$ /$1\.html [L,R=301]
これは、URLが。で終わるかどうかを確認するために正常に機能します.html
。また、で終了しない場合.html
は、URI +にリダイレクトされます.html
(これはそれ自体でも正常に機能します)。
1つに両方のルールがある場合.htaccess
RewriteCond %{REQUEST_URI} ^(.*)\.html$
RewriteRule ^(.*)\.html$ index.php?id=$1 [QSA,L]
RewriteCond %{REQUEST_URI} !^(.*)\.html$
RewriteRule ^(.*)$ /$1\.html [L,R=301]
次に、リダイレクトループが発生するループがあります。
誰かが私がどこで間違っているのか指摘できますか?