php - 防止 CSS URL 被 htaccess 重写

标签 php regex apache .htaccess mod-rewrite

我正在使用 .htaccess 创建标准重写来执行此操作

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

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

现在,它可以正常工作,但所有其他外部 URL(例如 CSS 和 JavaScript)都无法正常工作。 有没有办法在不必更改所有 url 的情况下防止它?我在 Google 上搜索没有成功,有什么想法吗?

最佳答案

您将需要一个额外的规则来修复 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:// 或斜杠 /

开头

关于php - 防止 CSS URL 被 htaccess 重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19913132/

相关文章:

java - 具有唯一数字的正则表达式

regex - 0 和 1 相等的正则表达式

python - 如何匹配这个正则表达式?

python - 在 mod_wsgi 上部署 django 应用程序时出现问题

apache - Solr 拼写检查与模糊搜索

apache - 在 tomcat 7 中登录管理器 webapp 显示错误

javascript - 如何在 native JS 中使用 AJAX 保持 PHP session 处于事件状态?

c# - 使用 Google 文档 API

php - Laravel 5.1 Mysql NULL

javascript - 如何使用 FormData API 发出 POST 请求