从 htaccess 中排除文件夹

Posted

技术标签:

【中文标题】从 htaccess 中排除文件夹【英文标题】:Exclude folder from htaccess 【发布时间】:2012-11-30 00:37:32 【问题描述】:

我有一个网站,它使用 htaccess 来使用漂亮的 URL。但是我希望 htaccess 文件保留一个完整的文件夹并且它的内容完全。我的 htaccess 文件的内容是:

RewriteEngine On
RewriteCond %SCRIPT_FILENAME !-f
RewriteCond %SCRIPT_FILENAME !-d
RewriteRule ^(.*)$ index.php/$1

我应该如何完成上述代码以完全排除名为“admin”的文件夹

非常感谢!

【问题讨论】:

***.com/questions/1848500/… 和 ***.com/questions/1715785/… 可能会有所帮助。当您提出问题时,请查看 *** 提供的其他文章并先环顾四周。 我尝试根据您的第二个链接修改代码,但不幸的是没有工作。修改后的代码如下所示: RewriteEngine On RewriteRule ^admin($|/) - [L] RewriteCond %SCRIPT_FILENAME !-f RewriteCond %SCRIPT_FILENAME !-d RewriteRule ^(.*)$ index.php/$1跨度> 我想我不能再帮你了,因为我对 htacces 的了解不是很好。您可以将您的编辑代码放在您的主要问题中。因此,其他人会看到您尝试过的内容,并且可能会在排除地图 htacces 之类的内容上使用 Google。 【参考方案1】:

我在 TYPO3 的子目录中遇到了 PhpMyAdmin 的问题。 很长一段时间后,我在上面目录中的.htaccess-文件中找到了这个块,导致phpmyadmin的一个文件出现故障:

# UTF-8 encoding
AddDefaultCharset utf-8
<IfModule mod_mime.c>
    AddCharset utf-8 .atom .css .js .json .manifest .rdf .rss .vtt .webapp .webmanifest .xml
</IfModule>

原因是存在由规则触发的文件phpmyadmin.css.php。 更改规则后,如下 PhpMyAdmin 工作正常:

# UTF-8 encoding
AddDefaultCharset utf-8
<IfModule mod_mime.c>
    AddCharset utf-8 .atom .js .json .manifest .rdf .rss .vtt .webapp .webmanifest .xml

    #####
    ## This block is for the file phpmyadmin.css.php, where the suffix css is not the last one.
    ## @see https://httpd.apache.org/docs/current/mod/mod_mime.html#multipleext
    #####
    <FilesMatch "[^.]+\.css$">
      AddCharset utf-8 .css
    </FilesMatch>
</IfModule>

条件&lt;FilesMatch "[^.]+\.css$"&gt; 仅在后缀css 位于文件名末尾时才会触发。

所以我的案例不是关于重写,而是关于一个类似的问题,重写似乎是我的首要解决方案。

【讨论】:

【参考方案2】:

你也可以在你想忽略的文件夹中放一个新的 .htaccess 文件,说:

RewriteEngine Off

【讨论】:

这个对于不知道 url rewiting 的人来说是击球手【参考方案3】:

您要排除的文件夹是/excluded-folder/,您将添加以下规则:

RewriteCond %REQUEST_URI !^/excluded-folder/.*$

在您列出的其他两个 RewriteConds 之前。

【讨论】:

以上是关于从 htaccess 中排除文件夹的主要内容,如果未能解决你的问题,请参考以下文章

.htaccess & WordPress:从 RewriteRule 中排除文件夹

从htaccess重写中排除文件夹

从 .htaccess 中的密码保护中排除一个文件

从 HTACCESS 文件中的所有 ISAPI 重写 3 规则中排除目录

htaccess 从 Basic Auth 中排除一个 url

如何从重写器中排除特定文件