我一直在尝试使用 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,我没有被重定向。
之前有人遇到过这样的问题,并且为我提供了什么提示,我尝试了什么?我真的做了很多搜索,但无法弄清楚出了什么问题。
答案 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