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 に答える