私はサーバーのサブフォルダーにサブドメイン要求を書き換えようとしています .htaccess
。が欲しいです mail.domain.com
しらべる mail
ルートにあるフォルダー。私は以下のコードでこれを達成することができます
RewriteEngine on
RewriteCond %{HTTP_HOST} mail.domain.com$
RewriteCond %{REQUEST_URI} !^/mail
RewriteRule ^(.*)$ /mail/$1 [L]
これは正しく機能します。閲覧するとき mail.domain.com
私はの内容を取得しています domain.com/mail/index.php
.
ただし、これはサブドメイン内のサブフォルダーでは機能しません。つまり、 mail.domain.com/installer
内容を提供しません domain.com/mail/installer/index.php
。代わりに、404エラーが表示されます。私もからコードを試しました htaccessサブドメインポインティング 。どういうわけか、出力を取得できません。この方法でも同じ問題が発生します。何が間違っていますか?
注意:
- リダイレクト条件は必要ありません。書き換えルールで達成したい。
- OpenShiftサーバーを使用しています。作成した
domain.com
そして、mail.domain.com
エイリアス。 - ルートフォルダーにはワードプレスが含まれています
いいえ.htaccessルールの下。
編集
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
上記のワードプレスhtaccess allを削除するとうまくいきます。そのため、サブドメインのサブフォルダーで404エラーが発生しています。 WordPressのきれいなURLとサブドメインのサブフォルダの両方が機能するために私ができることを助けてください?
注:本当にすみません。 WordpressはこれをWebインターフェース経由で追加しましたが、それに気づきませんでした。
回答:
回答№1は1ルート.htaccessを次のようにしてください:
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} =mail.domain.com
RewriteRule ^((?!mail).*)$ mail/$1 [L,NC]
RewriteRule ^(index.php$|mail) - [L,NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]