【发布时间】:2010-11-09 06:14:06
【问题描述】:
我的 .htaccess 中有以下重写:
Options +FollowSymLinks
RewriteEngine On
RewriteRule \.(css|jpe?g|gif|png)$ - [L]
RewriteRule ^index/error/([^/\.]+)/?$ index.php?error=$1 [L]
如您所知,它不应该重写任何 .css/.jpg/.jpeg/.gif/.png 文件。尽管如此,它还是这样做了。真正奇怪的是,它下面的那一行,将 /index/error/whatever 重定向到 index.php?error=$1 的那一行运行良好。我的正则表达式有问题吗?有没有更好的方法来做到这一点?
TIA。
经过多次尝试稍后解决问题后进行编辑:
我实际上找到了一种不同的(在我看来)更优雅、当然更简单的方法来做到这一点。我的问题是我的文件包含指向我的 CSS 文件的指针,即 href="./css/styles.css"。 styles.css 文件永远不会移动。因此,我只是将 href 元素更改为绝对 URI (http://www.mysite.com/css/styles.css) 而不是相对 URI。问题解决了!感谢所有发帖提供帮助的人。
【问题讨论】:
-
看起来不错。你能从你的 Apache 日志文件中发布一些条目来准确显示正在发生的事情吗?
-
哪个重写规则被应用到 css,jpg... 文件?
标签: regex apache mod-rewrite