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 路径之前添加“正斜杠”即可。

【讨论】:

是的,我也得到了这个 bankhints.com" /> 它解决了我的问题,谢谢。我接受了你的回答

以上是关于Seo 友好 URL 导致 CSS IMG 和 JS 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在 jsf 中创建用户友好和 seo 友好的 url?

AJAX 和 SEO 友好的 URL

Mod_rewrite 结合 SEO 友好的 url 和 CDN

SEO 友好的 URL 重写器参数

htaccess 重写和重定向 SEO 友好的 URL

SEO 友好 URL 的 URL 路由