0

几天来,我一直把头撞在墙上,我知道我离得更近了,但我不知道如何让这个 .htaccess 工作。

我有这个链接:

http://rebateninja.com?page=reviews&id=B005KMDV9A&review=Shark-Navigator-Professional-Lift-Away-Vacuum-Clea

我想这样称呼它:

http://rebateninja.com/reviews/B005KMDV9A/Shark-Navigator-Professional-Lift-Away-Vacuum-Clea

我的 htacess 有这个:

RewriteEngine On
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)$ index.php?page=$1&id=$2&review=$3 [L]

但是页面充满了 404 错误,试图指向不存在的资源,如下所示:

http://rebateninja.com/reviews/B005KMDV9A/css/960.css

代替

http://rebateninja.com/css/960.css

我做错了什么?

4

3 回答 3

0

您的链接是相对的而不是绝对的。这意味着浏览器会尝试猜测基本 URI 是什么以及浏览器访问的 URL 何时看起来像:

http://rebateninja.com/reviews/B005KMDV9A/Shark-Navigator-Professional-Lift-Away-Vacuum-Clea

这意味着内容中的任何相对 URL 都将/reviews/B005KMDV9A/附加基础,所以如果相对链接看起来像:

<link rel="stylesheet" type="text/css" href="css/960.css">

生成的请求是针对http://rebateninja.com/reviews/B005KMDV9A/css/960.css. 您需要使用绝对链接或添加:

<base href="/">

在页面的标题中。

于 2012-12-18T05:38:44.690 回答
0

是的,这是真的,你.htaccess是对的......

可能是,改变[L][NC] 你的 ocde 看起来像这样:

RewriteEngine On 
RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)$ index.php?page=$1&id=$2&review=$3 [NC]

希望有帮助

于 2012-12-18T02:56:08.327 回答
0

查看您的实际站点,指向您的 css 文件的链接是css/960.css在当前文件夹中查找它们,http://rebateninja.com/reviews/B005KMDV9A/而不是在根目录中。

检查这篇文章 - https://stackoverflow.com/a/3900018/1791606

于 2012-12-18T03:06:12.347 回答