2

我一直在尝试使用RewriteOptions Inerhit 来限制我的规则,因为由于某种原因,默认情况下不会限制规则。您可能想知道我在LiteSpeed服务器上。

IP XXX.XX.XX.XX指向一个子域,该子域位于 ~/public_html/dir/sub/

此 .htaccess 位于~/public_html/

RewriteEngine On
RewriteOptions Inherit

RewriteCond %{HTTP_HOST} ^XXX.XX.XX.XX$ [NC]
RewriteRule ^(.*)$ http://www.example.com [R=301,L]

~/public_html/dir/我有这个.htaccess:

RewriteEngine On
RewriteOptions Inherit

~/public_html/dir/sub/.htaccess 中也看起来像这样:

RewriteEngine On
RewriteOptions Inherit

在这个 .htaccess 中还有一些 WordPress 代码,我也尝试将其删除,但没有任何改变。

我也尝试使用RewriteOptions Inherit Before,但不应用 ~/public_html/ 中的规则。因此,如果我转到 IP,我不会被重定向。

任何人以前都遇到过这样的问题,并得到了我云尝试的任何提示?我确实做了很多搜索,但无法弄清楚出了什么问题。

4

1 回答 1

4

我发现继承的(在根文件夹中)规则是用子目录上下文解析的

/.htaccess
RewriteRule melon http://www.google.com [R,L]
RewriteRule /services/bar http://www.yahoo.com [R,L]

/services/.htaccess
RewriteEngine On
RewriteOptions Inherit
deny from all

http://mydomin.com/services/bar => 403
http://mydomin.com/services/melon => google.com !!!

也许尝试使用更宽松的 RewriteRule (.*)

此外,由于 RewriteRule 上下文丢失,如果您需要条件重写,请尝试使用 RewriteCond 捕获模式

RewriteCond %{REQUEST_URI} (/services/.*)
RewriteRule (.*) http://elsewhere.com/%1 
#in place of a basic RewriteRule /services/(.*) http://elsewhere.com/$1 
于 2012-08-16T17:32:46.083 回答