问题
我想用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
为什么?因为是我的开发机器,所以我的根目录下有很多文件夹.例如:
>博客
>项目
>投资组合
>研究
>测试
>工作
上面的所有项目都是我工作区中的一个文件夹,每个文件夹都是关于不同的事情,因此,我不需要将.htaccess放在根目录中,除非确实需要.
解决方法:
您不希望规则模式中出现前导斜线. htaccess文件中的RewriteRule将在应用规则之前去除前导斜杠:
RewriteRule ^css/(.*)$/app/themes/default/css/$1 [NC,L]