我正在使用以下 htaccess 规则,该规则在整个互联网上都建议用于删除 codeigniter url 中的 index.php。还有一些我在上面添加的重定向规则。
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?$1 [L]
问题是:我收到了一些奇怪的 http 请求,我认为这是由上面的 htaccess 规则引起的。这里是其中的一些 :
https://www.sitename.com/index.php/favicon.ico 应该是 .com/favicon.ico
https://www.sitename.com/index.php/scripts/jquery.js 应该是 .com/public/jquery.js 作为旁注我使用基本标签将资产重定向到 /public/
奇怪的是我找不到第二次重定向发生的位置我测试了整个站点并且 javascript 和 css 文件正确加载
我通过让我的控制器忽略这些请求来处理此重定向,但不久前发生了一个奇怪的错误。我在这里问: https ://stackoverflow.com/questions/11775849/htaccess-didnt-work-until-renaming-and-then-renaming-back
我的猜测是,即使我忽略了错误重定向的请求,托管公司也会收到它们,并且可能给他们造成了一些麻烦,这导致了我在托管公司维护的链接问题中共享的问题。
无论如何,问题是: 我怎样才能使 htaccess 规则只重定向最后没有文件扩展名的请求?