.htaccess - 需要 mod_rewrite URL 信息

标签 .htaccess mod-rewrite url-rewriting

我是这个 mod_rewrite 的新手。 我已经成功地重写了这样的 URL: http://mydomain.com/products/12 对此:http://mydomain.com/products.php?prodId=12

但是当我在地址栏中输入 http://mydomain.com/products/12 时,css 和 js 文件没有加载。

但是当我访问 http://mydomain.com/products.php?prodId=12 时,js 和 css 会正确加载。如果我遗漏了什么,请告诉我。

我的 .htaccess 看起来像这样:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^products/([0-9][0-9])/$ /products.php?prodId=$1 [L]

我的css和js文件夹也在同一个文件夹里。

最佳答案

您需要知道相对 URI(因此也包括绝对和相对 URI 路径)是从基本 URI 解析的,如果未明确声明,该基本 URI 就是当前文档的 URI。

因此,如果您使用相对 URI foo/bar/products/12 引用外部资源,它会解析为 /products/foo/bar.

要解决此问题,请使用绝对 URI 路径(以 / 开头)或绝对 URI(以协议(protocol)开头)或明确设置当前 URI 以外的基本 URI(请参阅 BASE HTML element )。但请注意,更改基本 URI 会产生一些副作用,因为它会影响每个 相对 URI。

关于.htaccess - 需要 mod_rewrite URL 信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/891775/

相关文章:

java - 如何通过 mod_rewrite 将请求传递给 mod_jk 并剥离应用程序上下文,让 tomcat 5.5 在 apache 2 后面运行?

php - FCGI 和 PHP 5.4.x 不加载 .user.ini

apache - htaccess 404 停止工作

apache - htaccess 重写 index.php 并在没有 www 的情况下重定向

mod-rewrite - 在不使用 .htaccess 文件的情况下,我在哪里可以将 RewriteRules 放在 Apache2 中?

apache RewriteRule 需要在 url 末尾添加斜杠才能工作

url - 什么时候应该在我的 URL 中使用尾部斜杠?

asp.net - 重定向主页

Laravel 从本地主机上的 url 中删除公共(public)

javascript - 如何为 css 和 javascript 设置缓存