我在写.htaccess
语法时做错了一些事情,我不确定到底是什么。
我有一个名为/core/favicon.ico
的文件。
现在我希望当浏览器请求/favicon.ico
时,服务器显示:/core/favicon.ico
。
我的.htaccess
的内容目前是
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ core/index.php?url=$1 [QSA,L]
RewriteRule ^favicon.ico core/favicon.ico [NC,L]
</IfModule>
前面的重写规则是我的系统运行所必需的。
RewriteRule ^(.*)$ core/index.php?url=$1 [QSA,L]
这条规则很有效。
1条答案
按热度按时间csbfibhn1#
你基本上只是把规则的顺序搞错了,假设
/favicon.ico
不存在,所以第一条规则首先将请求重写为core/index.php?url=favicon.ico
,然后处理停止。您需要颠倒这两个规则(并使用反斜杠转义点并添加字符串结束锚)。例如:
DirectoryIndex
。例如:请注意,
url
参数对于此类请求(到“主页”)将不存在。