htaccess directoryindex重定向寻找css错误的地方

Posted

技术标签:

【中文标题】htaccess directoryindex重定向寻找css错误的地方【英文标题】:htaccess directoryindex redirect looking for css wrong place 【发布时间】:2013-03-09 21:20:01 【问题描述】:

您好,在我的 htaccesss 文件中,我将这段代码放入以确保我的目录索引文件设置为

v2013/index.html

所以我把这段代码

DirectoryIndex v2013/index.html

然后我希望它看起来像 mydomain.com/Welcome,所以我添加..

RewriteEngine On
RewriteRule ^Welcome$ v2013/index.html [L]

我的问题是为什么 DirectoryIndex 不再工作.. 我如何告诉浏览器在 v2013 中查找 css,因为正在查找根目录。 (我认为是因为重写)所以我的页面没有风格.. =(

换句话说就是寻找 www.domain.com/css/sheet.css 的 insted

www.domain.com/v2013/css/sheet.css

答案在这里:

最终代码

DirectoryIndex v2013/index.html

RewriteEngine On

# exclude files already asking for v2013
RewriteCond %REQUEST_URI !^/v2013/
RewriteRule ^css/.*$ /v2013/$0
RewriteRule ^js/.*$ /v2013/$0
RewriteRule ^images/.*$ /v2013/$0

RewriteRule ^Bienvenido$ v2013/index.html [L]

【问题讨论】:

【参考方案1】:

您可以添加一个额外的RewriteRule,它也会重写css/js/images/ 文件

# exclude files already asking for v2013
RewriteCond %REQUEST_URI !^/v2013/
RewriteRule ^(?:css|images|js)/.*$ /v2013/$0

【讨论】:

嘿,谢谢!!你几乎明白了!...但我需要同样的调用图像。我必须为每个文件夹做同样的事情吗?编辑(是的,它有效)【参考方案2】:

在你使用 css 文件的地方不要输入“css/style.css”,而是写“/css/style.css”。添加 / 会将您带到根目录。 html 应如下所示:

     <link href="/v2013/css/style.css" rel"stylesheet" type="text/css" />

【讨论】:

你可能错过了这一点......此时正在寻找 www.domain.com/css/sheet.css 如果我把 /css/ 不打算看 www.domain.com /v2013/css/sheet 另外,如果您访问 domain.com/v2013/index.html 我的页面看起来很棒,这是 htaccess 中的一个问题,因此我可以在 domain.com/welcome 上显示我的页面

以上是关于htaccess directoryindex重定向寻找css错误的地方的主要内容,如果未能解决你的问题,请参考以下文章

.htaccess RewriteRule .php扩展冲突

条件目录索引

htaccess 从 Basic Auth 中排除一个 url

.htaccess 规则将图像文件的直接视图重定向到页面,图像作为查询字符串传递

将 httpd ProxyPass 与 DirectoryIndex 一起使用

DirectoryIndex 似乎被 apache2 忽略了