如何从 .htaccess 中排除子文件夹
Posted
技术标签:
【中文标题】如何从 .htaccess 中排除子文件夹【英文标题】:How to exclude a subfolder from .htaccess 【发布时间】:2011-05-04 23:35:00 【问题描述】:我正在使用插件用户访问管理器来限制对 Wordpress 站点中文件夹上传的访问。 此文件夹位于 example.com/wp-content/uploads/。 该插件已将这个 .htaccess 写入该文件夹:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteRule (.*) /index.php?uamfiletype=attachment&uamgetfile=$1 [L]
</IfModule>
在该文件夹 (/wp-content/uploads/) 中,还有一个名为 wpsc (/wp-content/uploads/wpsc/) 的文件夹,其中包含该站点商店的文件。 现在 .htaccess 工作正常,但它也限制了 wpsc 文件夹。我需要添加一个例外,以便每个人都可以访问 wpsc 文件夹。
【问题讨论】:
【参考方案1】:在 wpsc/ 文件夹中放置一个 .htaccess 文件,内容如下:
<IfModule mod_rewrite.c>
RewriteEngine Off
RewriteBase /
</IfModule>
这会否决父文件夹中 .htaccess 文件中的重写规则
这适用于插件 WP Photo Album Plus,i.c. ../wp-content/uploads/wppa/ 文件夹。
【讨论】:
【参考方案2】:您可以使用RewriteCond
来检查匹配的字符串:
RewriteCond $1 !^wpsc/
RewriteRule (.*) /index.php?uamfiletype=attachment&uamgetfile=$1 [L]
【讨论】:
不幸的是,这不起作用。我尝试了其他替代方法,例如 !^wpsc、!^/wpsc/、!^/wp-content/uploads/wpsc 等等,但它们也不起作用。 @Luis Herranz:好吧,既然基本路径是/
,你实际上需要使用!^wp-content/uploads/wpsc/
。以上是关于如何从 .htaccess 中排除子文件夹的主要内容,如果未能解决你的问题,请参考以下文章
.htaccess & WordPress:从 RewriteRule 中排除文件夹