从 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>
条件<FilesMatch "[^.]+\.css$">
仅在后缀css
位于文件名末尾时才会触发。
所以我的案例不是关于重写,而是关于一个类似的问题,重写似乎是我的首要解决方案。
【讨论】:
【参考方案2】:你也可以在你想忽略的文件夹中放一个新的 .htaccess 文件,说:
RewriteEngine Off
【讨论】:
这个对于不知道 url rewiting 的人来说是击球手【参考方案3】:您要排除的文件夹是/excluded-folder/
,您将添加以下规则:
RewriteCond %REQUEST_URI !^/excluded-folder/.*$
在您列出的其他两个 RewriteConds 之前。
【讨论】:
以上是关于从 htaccess 中排除文件夹的主要内容,如果未能解决你的问题,请参考以下文章
.htaccess & WordPress:从 RewriteRule 中排除文件夹
从 HTACCESS 文件中的所有 ISAPI 重写 3 规则中排除目录