我想让我的URL成为SEO友好的URL。我尝试通过重写规则来编辑.htaccess
文件
RewriteRule ^swift-details/([0-9]+)/([0-9a-zA-Z_-]+)$ swift-details.php?id=$1 [NC,L]
RewriteRule ^swift-details/(css|js|img)/(.*)?$ /$1/$2 [L,QSA,R=301]
它正在路由正确的URL,但在该页面中CSS JS和图像不起作用。
示例URL:
http://www.example.com/swift-details/2/abblinbb
这是因为您的相对URI的基已更改。最初,当页面为/swift-details.php?id=foo
时,基础为/
,并且浏览器正确地填充与/
基础的相对链接。但是,当浏览器转到像/swift/details/foo
这样的页面时,基础突然变成/swift/
,它试图将其附加在所有相关URL之前,因此没有加载它们。
您可以使链接成为绝对链接,也可以更改页面标题中的URI基(在<head> </head>
标签之间(:
<base href="/">
您不需要第二个重写规则。您的CSS/JS路径都是相对于您当前位置的。
您的CSS存在于此处:/css/normalize.css
您的页面位于此处:/swift details/2/abblinbb/css/normalize.css
您所需要的只是在CSS/JS路径之前加上"斜杠"。