.htaccess RewriteOptions Inherit不是继承

时间:2011-10-05 11:11:59

标签: .htaccess mod-rewrite litespeed

我一直在尝试使用 RewriteOptions Inerhit 来管理我的规则,因为出于某种原因默认情况下规则不是很有效。你可能想知道我在 LiteSpeed server。

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,我没有被重定向。

之前有人遇到过这样的问题,并且为我提供了什么提示,我尝试了什么?我真的做了很多搜索,但无法弄清楚出了什么问题。

1 个答案:

答案 0 :(得分: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