2

我正在创建一个标准的重写.htaccess来做到这一点

http://www.myurl.com/post/{id}/

RewriteRule    ^post/([0-9]+)/?$    post.php?id=$1    [NC,L]

现在,它可以完美运行,但所有其他外部 URL(例如 CSS 和 JavaScript)都无法正常工作。有没有办法防止它而不必更改所有的网址?我在谷歌上搜索没有成功,有什么想法吗?

4

2 回答 2

4

只需从您的状况中排除物理文件

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule    ^post/([0-9]+)/?$    post.php?id=$1    [NC,L]
于 2013-11-11T18:23:30.050 回答
4

您将需要一个附加规则来修复 css、js、图像链接:

# your rewrite rule
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^post/([0-9]+)/?$ post.php?id=$1 [QSA,NC,L]

# fix css, js, image links
RewriteRule ^post/(.+?\.(?:jpe?g|gif|bmp|png|tiff|css|js))$ /$1 [NC,L]

或者确保只在你的 css、js、图像文件中使用绝对路径而不是相对路径。这意味着您必须确保这些文件的路径http://以斜杠或斜杠开头/

于 2013-11-11T18:24:23.817 回答