【问题标题】:mod_rewrite URL info required需要 mod_rewrite URL 信息
【发布时间】:2009-05-21 07:27:14
【问题描述】:

我是这个 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 文件夹也在同一个文件夹中。

【问题讨论】:

    标签: .htaccess mod-rewrite url-rewriting


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      您必须使用指向您的脚本/css 文件的相对链接,如下所示:

      <script src="my.js"></script>
      

      这适用于您的旧网址,但在新网址上,它将在“产品”目录中查找,该目录当然不存在。您可以改用绝对网址:

      <script src="/my.js"></script>
      

      【讨论】:

        猜你喜欢
        • 2010-12-31
        • 2010-12-07
        • 1970-01-01
        • 1970-01-01
        • 2013-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-26
        相关资源
        最近更新 更多