在子文件夹中维护单独的.htaccess文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在子文件夹中维护单独的.htaccess文件相关的知识,希望对你有一定的参考价值。
如何维护2个单独的.htaccess文件,以避免在主.htaccess文件中转储规则。
例如:我希望在^ shows(/.*)?$之后跟踪所有url指向在控制器/节目(.htaccess)下创建的.htaccess
答案
根据您的重写规则,这可以通过.htaccess
文件的最小重写(heh)来完成。以存储在webroot .htaccess
中的这个/var/www/html
文件为例:
RewriteEngine On
RewriteRule ^/foo/help/(.*)? /foo/help.php?q=$1
Rewriterule ^blog/(.*)? blog/index.php?id=$1
我们在这里做了两种重写:
www.example.com/foo/help/123 -> wwww.example.com/foo/help.php?q=123
www.example.com/blog/myarticle -> www.example.com/blog/index.php?id=myarticle
请注意,第一个RewriteRule
使用绝对路径,而第二个使用相对路径。
如果我将第一个RewriteRule
移动到/var/www/html/foo/.htaccess
,文件将如下所示:
RewriteEngine On
RewriteRule ^/foo/help/(.*)? /foo/help.php?q=$1
请注意,由于您使用的是绝对路径,因此无需更改任何内容。
现在,如果我将第二个RewriteRule
移动到/var/www/html/blog/.htaccess
,文件将如下所示:
RewriteEngine On
RewriteBase /blog/
RewriteRule ^(.*)? index.php?id=$1
请注意,RewriteRule
中的路径被剥离,使它们相对于当前目录,现在是/blog
。还要注意RewriteBase
指令,这在子目录中使用相对重写规则时是必需的。
查看this question以获取使用子目录.htaccess
重写规则的另一个示例。
以上是关于在子文件夹中维护单独的.htaccess文件的主要内容,如果未能解决你的问题,请参考以下文章
放置在子文件夹中时,错误文档在 .htaccess 中重定向