所以我有两个规则。每条规则都完全按照它自己的方式执行它应该做的事情.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
(这本身也可以正常工作)。
当我同时拥有两条规则时.htaccess
RewriteCond %{REQUEST_URI} ^(.*)\.html$
RewriteRule ^(.*)\.html$ index.php?id=$1 [QSA,L]
RewriteCond %{REQUEST_URI} !^(.*)\.html$
RewriteRule ^(.*)$ /$1\.html [L,R=301]
然后有一个循环导致重定向循环。
有人可以指出我哪里出错了吗?