/ /サブフォルダーアクセスを備えたhtaccessサブドメイン-php、regex、apache、.htaccess、mod-rewrite

htaccessサブドメインへのアクセス - php、regex、apache、.htaccess、mod-rewrite

私はサーバーのサブフォルダーにサブドメイン要求を書き換えようとしています .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サブドメインポインティング 。どういうわけか、出力を取得できません。この方法でも同じ問題が発生します。何が間違っていますか?

注意:

  1. リダイレクト条件は必要ありません。書き換えルールで達成したい。
  2. OpenShiftサーバーを使用しています。作成した domain.com そして、 mail.domain.com エイリアス。
  3. ルートフォルダーにはワードプレスが含まれています いいえ .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]