好吧,我已经在stackoverflow上阅读了htaccess指南的页面和更多页面,但是仍然我还没有找到这个问题的答案。
我希望将网址www.domain.com/profile/1重定向到www.domain.com/profile.php?id=1,并将重定向到www.domain.com/profile/ranisalt进行重定向到www.domain.com/profile.php?seo=ranisalt
我正在使用此重写规则,并且在重定向时一直很好用:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^profile/([0-9]+)/ profile.php?id=$1 [NC,QSA,L]
(there is more, but not relevant)
问题是,CSS是在文件夹css /中,如果我直接通过profile.php访问?id = 1它正确加载(www.domain.com/css/style.css),但当我访问掩码,它试图在www.domain.com/profile/1/css/style.css找到css,这是找不到的。
我一直在使用它作为临时修复
RewriteRule ^(.*)/(css|js)/(.*).(css|js)$ css/$3.$4 [L]
RewriteRule ^(.*)/img/(.*).(jpg|png)$ img/$2.$3 [L]
但它看起来并不整洁:(
如何让它很好地正确加载CSS?
答案 0 :(得分:0)
您的相对URI基础已更改,因此当浏览器加载www.domain.com/profile/ranisalt
之类的网址时,相对指向css等内容的链接会将/profile/
附加到URI的前面(从而重新开始www.domain.com/profile/css/some.css
1}})。在profile.php
生成的HTML中,您需要通过将此标记添加到网页标题来添加URI基础:
<base href="/">