扁平链接的mod_rewrite就像它在子目录中的行为一样

时间:2014-05-06 14:01:55

标签: php apache .htaccess mod-rewrite

我正在尝试在mod_rewrite中创建.htaccess规则集,以便我可以创建一些指向页面功能的平面链接。

当用户输入:http://example.com/where/location

我想重定向到:http://example.com/index.php?where=location

我目前正在使用:

RewriteEngine on
RewriteRule ^where/([^/.]+)/?$ /index.php?where=$1
除了index.php中的css,JS和图像链接不再被发现之外,

哪种工作 - 就像服务器从不存在的/where/location子服务器提供index.php一样。目录

这是发生了什么,有没有办法让服务器通常使用相对链接从根目录中的实际位置为index.php提供服务?

1 个答案:

答案 0 :(得分:2)

服务器端在这里无关紧要。您 实际上是从/where/location为该网站提供服务;这个URL在内部被重写是无关紧要的。如果您正在使用CSS文件的相对路径,浏览器将根据其所在的当前URL解析这些路径。最佳策略通常是为包含的文件使用绝对路径,例如:

/css/style.css

而不是

css/style.css