我已经把头撞到墙上好几天了,我知道我离我很近但是我不知道如何制作这个.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
我做错了什么?
答案 0 :(得分:0)
是的,你的.htaccess
是对的......
可以,[L]
改为[NC]
你的ocde看起来像这样:
RewriteEngine On
RewriteRule ^([^/.]+)/([^/.]+)/([^/.]+)$ index.php?page=$1&id=$2&review=$3 [NC]
希望得到帮助
答案 1 :(得分:0)
查看您的实际网站,您的css文件的链接是css/960.css
,因此在当前文件夹中搜索它们,因此http://rebateninja.com/reviews/B005KMDV9A/
而不是根目录。
答案 2 :(得分:0)
假设你想要:
http://rebateninja.com?key1=val1&key2=val2&key3=val3
要改写为:
http://rebateninja.com/val1/val2/val3
一种方法是:
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} [\w]+=(.*)&[\w]+=(.*)&[\w]+=(.*)
RewriteRule .* /%1/%2/%3? [R=301,L]
我还假设有一个重定向,所以我添加了它。仅[L]标志不会重定向。
答案 3 :(得分:0)
您的链接是相对的而不是绝对的。这意味着浏览器会尝试猜测基本URI是什么以及浏览器访问的URL何时显示:
http://rebateninja.com/reviews/B005KMDV9A/Shark-Navigator-Professional-Lift-Away-Vacuum-Clea
这意味着内容中的任何相对网址都会附加基础/reviews/B005KMDV9A/
,因此如果相对链接如下所示:
<link rel="stylesheet" type="text/css" href="css/960.css">
生成的请求是针对http://rebateninja.com/reviews/B005KMDV9A/css/960.css
的。您需要使用绝对链接或添加:
<base href="/">
在您网页的标题中。