Seo 友好 URL 导致 CSS IMG 和 JS 不起作用
Posted
技术标签:
【中文标题】Seo 友好 URL 导致 CSS IMG 和 JS 不起作用【英文标题】:Seo Friendly URL results in CSS IMG and JS not working 【发布时间】:2015-09-23 08:31:23 【问题描述】:我想将我的 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 和图像不起作用。
示例网址:
http://www.example.com/swift-details/2/abblinbb
【问题讨论】:
另请参阅网站管理员堆栈上的以下问题:.htaccess rewrite URL leads to missing CSS 另见How to fix images js and stylesheet on rewritten URLs 【参考方案1】:这是因为您的相对 URI 的基数已更改。原来,当页面为/swift-details.php?id=foo
时,base为/
,浏览器正确填写了/
base的相关链接。但是当浏览器转到像/swift/details/foo
这样的页面时,基础突然变为/swift/
,它会尝试将其附加到所有相对 URL 的前面,因此它们都不会加载。
您可以将链接设为绝对链接,也可以更改页面标题中的 URI 基础(在 <head> </head>
标记之间):
<base href="/">
【讨论】:
【参考方案2】:您不需要第二个重写规则。您的 CSS/JS 路径都与您当前的位置“相对”。
您的 CSS 存在于此处: /css/normalize.css
您的页面正在查看: /swift-details/2/abblinbb/css/normalize.css
您只需要在 CSS/JS 路径之前添加“正斜杠”即可。
【讨论】:
是的,我也得到了这个以上是关于Seo 友好 URL 导致 CSS IMG 和 JS 不起作用的主要内容,如果未能解决你的问题,请参考以下文章