【问题标题】:Redirect css (assets) with htaccess使用 htaccess 重定向 css(资产)
【发布时间】:2014-04-30 23:24:09
【问题描述】:

问题

我想用 htaccess 重定向我的 css 文件,因为整个路径很长。

我试试这个 - index.php:

<link rel="stylesheet" href="/css/styles.css">

这在我的.htaccess

RewriteEngine on
RewriteRule ^css/(.*)$ /app/view/templates/default/frontend/css/$1 [NC,L]

但是,CSS 没有加载。

GET http://localhost/css/styles.css 404 (Not Found) 

环境:发展

  • 没有虚拟主机
  • 直接访问:http://localhost/test

文件夹结构

Apache 目录(文档根目录):

/home/patrick/workspace/ = http://localhost

我的“问题”(测试)文件夹

/home/patrick/workspace/test/ = http://localhost/test

在 /test 文件夹内

CSS 路径(在测试文件夹内)

/app/view/templates/default/frontend/css/

所以,我想要:

<link rel="stylesheet" href="/css/styles.css">

然后,重定向(调用)正确的 url,如下所示:

/app/themes/default/css/styles.css

我尝试过,但不起作用:

RewriteEngine on
RewriteRule ^/css/(.*)$ /app/themes/default/css/$1 [NC,L]

观察

1) 我不想为该 URL 创建VirtualHost/Alias。

我的问题是:

  • .htaccess
  • 子文件夹
  • 重写规则

2) 我无法在我的 apache 的 DocumentRoot 目录中放置 .htaccess

为什么?因为是我的开发机器,我在根目录中有很多文件夹。例如:

  • 博客
  • 项目
  • 投资组合
  • 学习
  • 测试
  • 工作

上面的所有项目都是我workspace中的一个文件夹,每个文件夹都是关于不同的东西,所以,我不想把.htaccess放在根目录下,除非真的需要。

【问题讨论】:

    标签: php apache .htaccess redirect


    【解决方案1】:

    您不希望规则模式中出现前导斜线。在应用规则之前,htaccess 文件中的RewriteRule 将去掉前导斜杠:

    RewriteRule ^css/(.*)$ /app/themes/default/css/$1 [NC,L]
    

    【讨论】:

    • 与VirtualHost 一起工作,但如果我在普通网址(没有主机)中尝试:http://localhost/test/index.php 不起作用。
    • 如何配置它以便在没有主机/虚拟主机的子文件夹中工作?喜欢http://localhost/test/index.php?
    • @PatrickMaciel 只需将 htaccess 文件放在您的页面所在的文件夹中(例如/test/)
    • 我这样做但不起作用:GET http://localhost/css/styles.css 404 (Not Found)
    • @PatrickMaciel 如果你想重写http://localhost/css/styles.css,那么它必须进入文档根目录,因为/css/不在根目录中。
    猜你喜欢
    • 2013-10-29
    • 2023-03-12
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    • 2016-08-23
    相关资源
    最近更新 更多