我在我网站的根目录中有以下htaccess文件来重定向目录' MyDirectory'到另一个网址(停止谷歌索引两个网站)
RewriteCond %{HTTP_HOST} ^myurl\.co\.uk$ [OR]
RewriteCond %{HTTP_HOST} ^www\.myurl\.co\.uk$
RewriteRule ^mydirectory\/(.*)$$ "http\:\/\/www\.redirectURL\.com/" [R=301,NC]
然后我在“我的目录”中有另一个htaccess文件。上面的目录以用户友好的方式处理URL和查询字符串:
RewriteRule ^Answers/(.+)$ Answers.php?articleName=$1 [QSA]
但是,当我在其他htaccess中有 ReWriteRule ^ Answers ... 部分时,它会停止我网站根目录中的重定向工作。
任何有关为什么^ Answers / ...重写覆盖我的重定向到www.redirectURL.com的建议。
由于
答案 0 :(得分:0)
.htaccess
是每个目录指令,对于任何URI路径,首先处理当前目录的.htaccess
。如果没有找到.htaccess,那么它会从目录树开始向上一级,直到找到一个。它最终会处理DocumentRoot/.htaccess
。
在您的情况下,因为您有一个/MyDirectory/.htaccess
,因此所有指令都只从该文件中读取,因此会覆盖DocumentRoot/.htaccess
的所有规则。
但是,您可以在RewriteEngine On
/MyDirectory/.htaccess
之后添加此行
RewriteOptions inherit
这将在完成当前的.htaccess后处理父.htaccess。