.htaccess 重写规则破坏 css

Posted

技术标签:

【中文标题】.htaccess 重写规则破坏 css【英文标题】:.htaccess rewrite rule breaking css 【发布时间】:2012-02-27 13:40:02 【问题描述】:

我还是 .htaccess 的新手

所以我在 *** 上寻找我的答案,但我找不到它。我的网站有我必须设置的规则,所以我从中得到了我的规则:

SEO Friendly URL to Dynamic URL using php

RewriteEngine on
RewriteBase /
RewriteCond  %REQUEST_FILENAME !-f
RewriteCond  %REQUEST_FILENAME !-d
RewriteRule  ^(.*)$ index.php?request=$1 [QSA,L]

但由于某种原因,我的 css 坏了,但我的 php 很好

示例网址:

http://www.domain.com/aboutme
http://www.domain.com/css/version.css

【问题讨论】:

你能把你的.htaccess文件的内容贴出来。此外,您的 .css 文件是否在 html 中具有相对路径,例如../css/somefile.css? “但由于某种原因,我的 css 坏了,但我的 php 很好” --- 并且“你的”规则很糟糕......关于你所拥有的任何 真实 细节你看到了什么? PS:这第百万次证明,在不了解您所做的事情的情况下复制粘贴不是程序员应该做的事情 你想用 PHP 来处理你的 CSS 吗? @Joanna Lancaster:如果是这样 - 那么您所展示的规则不能导致您遇到的问题,根据定义 请求domain.com/css/version.css时看到了什么? 【参考方案1】:

问题是由于大写的文件名Version.css

如果你的 devbox 是 windows,它会工作。 Windows 不区分大小写。 但是当你在服务器(Unix)上测试它时,它会坏掉。 因为Unix区分大小写

最好将Version.css 重命名为version.css。它对未来是安全的

【讨论】:

重写规则不影响对现有文件和文件夹的引用,基于两个RewriteCond 规则。 澄清一下 - 这个想法是我的,如果你打勾就不公平了 @zerkms 是的,但是附加信息,它是我提取的。 :P 似乎很高兴 OP 完成了她的工作,所以我删除了我的答案并 +1 你的,祝你好运 ;-) @zerkms 所有聊天都在静脉中(叹气)【参考方案2】:

我对这个问题有一个超级答案。我一直在到处寻找一个简单的解决方案,它不会让我为我的所有相对路径(如 imgs、css、javascript...

就这样吧,在你遇到问题的页面的<head>标签之间添加这个:

<base href='http://www.mydomain.com/'>

这将使您的相对路径链接将以该基本链接开头。就这么简单。

<base> 标记指定文档中所有相对 URL 的基本 URL/目标。将<base>标签作为第一个元素放在<head>元素中,这样head部分的其他元素就可以使用<base>元素中的信息。

它对你有用吗?

【讨论】:

以上是关于.htaccess 重写规则破坏 css的主要内容,如果未能解决你的问题,请参考以下文章

htaccess 子域重写规则

PHP/Apache:用 .htaccess 重写规则

htaccess 列出目录并为其重写规则

重写规则问题:.htaccess

htaccess 单参数重写规则

Laravel .htaccess 重写规则转换为 IIS