我正在尝试在我正在开发的网站上实现干净的网址。
我正在使用.htaccess:
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?page=$1 [QSA,L]
当用户转到www.site.com/catalogue
时,apache会将其发送到:www.site.com/index.php?page=catalogue
。那没关系。
但如果用户转到www.site.com/catalogue/item
,该网站会丢失相关链接(css,javascript,图片)。
如果css文件位于css / site.css中,则apache认为html要求catalogue/css/site.css
。
那么:在使用mod_rewrite时如何保持相对链接完整?
此外,我希望该解决方案具有足够的自适应能力,以便能够在文件夹中工作,例如:www.domain.com/folder/catalogue/item
仍然可以引用www.domain.com/folder/index.php?page=catalogue
。
谢谢
答案 0 :(得分:0)
有一个简单的解决方法:
对资源文件使用绝对路径,例如* .css,*。js,* .png,* .gif,* .jpg。即,
您从(BAD)修改HTML代码:
<style rel="stylesheet" type="text/css" href="catalogue/css/site.css" />
=&GT; GOOD:
<style rel="stylesheet" type="text/css" href="/catalogue/css/site.css" />
这需要您重新编写PHP脚本。