我有下面详述的 .htaccess 文件,其中包含 HTTP_REFERER、HTTP_USER_AGENT 和 WordPress 的某些指令。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_REFERER} acertainwebsite\.com [NC,OR]
RewriteCond %{HTTP_USER_AGENT} acertainwebsite.com [NC]
RewriteRule .* - [F]
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) wordpress/$2 [L]
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ wordpress/$2 [L]
RewriteRule . index.php [L]
</IfModule>
我正在使用 FreeBSD 的 VPS 上运行。我不确定如何测试根 .htaccess 文件中的指令 RewriteCond %{HTTP_REFERER} 和 RewriteCond %{HTTP_USER_AGENT} 是否在较低级别的子目录中强制执行。
最新版本的 Wordpress 4.1.1。使用子目录结构选项打开/启用多站点选项安装。
我怀疑某些引荐来源网址流量可能会通过根目录中的 .htaccess 文件。我在某处读到 .htaccess 文件中的指令向上级联,Apache 首先在子目录中查找,然后在父目录中,然后在父目录中查找父目录。
所以这就是问题所在。我是否必须将 .htaccess 文件放在多站点安装的每个子目录中?或者我可以在多站点安装的根目录中使用单个 .htaccess 文件吗?
如果我必须在每个多站点域子目录中都有一个 .htaccess 文件,那么在子域中放置一个空的 .htaccess 文件是否足够?这会触发向上级联以检查执行情况吗?
如果您对它的工作原理有很好的解释,或者对另一个可以更好地解释它的来源的参考,请告诉我。谢谢!!!