在子文件夹中维护单独的.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 - 在子文件夹中安装 Symfony2

放置在子文件夹中时,错误文档在 .htaccess 中重定向

需要将 wordpress 帖子分类到子文件夹中,而无需在子文件夹中单独安装 wordpress

如何单独在 htaccess 中的管理文件夹上

使用子目录中的 404 ErrorDocument

htaccess维护重定向与IP和文件夹省略