.htaccess重写传递参数

时间:2017-10-28 01:05:19

标签: php apache .htaccess mod-rewrite

我想从

更改我的网址

www.example.com/collections.php?id=abc123www.example.com/collections/abc123

我像这样使用.htaccess

Options -Indexes
RewriteEngine On

RewriteRule ^collections/(\w+)/?$ collections.php?id=$1 [QSA,L,NC] 

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

现在,当我在浏览器中输入www.example.com/collections/abc123时,我的网页显示时没有加载任何css文件或脚本。 有人能指出缺少什么吗?

非常感谢。

1 个答案:

答案 0 :(得分:1)

好吧,显然你在引用脚本时使用了相对路径。所以,正在发生的事情是你的浏览器试图错误地获取这些资源,因为url中有额外的/,导致它认为你导航到了另一个目录。 你在这里可以做的是指定绝对路径。

示例为http://example.com/css/style.css,而不是/css/style.css