1

ルート ディレクトリに e コマース Web サイトがあり、ブログをサブ ディレクトリに移動したいと考えています。別のドメインからこのドメインへの移動に成功しましたが、ブログのホームページにアクセスしようとすると、e コマース サイトのホームページにリダイレクトされます。

eコマース サイト - http://www.heavytshirt.com ブログの場所 -http://www.heavytshirt.com/blog

ブログ ディレクトリの .htaccess ファイルは次のようになります。

    RewriteEngine on
    RewriteBase /

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /blog/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /blog/index.php [L]
    </IfModule>

    # END WordPress

ルート ディレクトリの .htaccess ファイルは次のようになります。

    DirectoryIndex /mm5/merchant.mvc?Screen=SFNT

    RewriteEngine On

    RewriteRule ^mm5/admin.mvc? - [L]

    RewriteCond %{REQUEST_FILENAME} !-s
    RewriteRule ^product/([^/.]+).html$ /mm5/merchant.mvc?Screen=PROD&Product_code=$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-s
    RewriteRule ^category/([^/.]+).html$ /mm5/merchant.mvc?Screen=CTGY&Category_code=$1 [L]

    RewriteCond %{REQUEST_FILENAME} !-s
    RewriteRule ^product/([^/]+)/([^/.]+).html$ /mm5/merchant.mvc?Screen=PROD&Category_code=$1&Product_code=$2 [L]

    RewriteCond %{REQUEST_FILENAME} !-s
    RewriteRule ^([^/.]+).html$ /mm5/merchant.mvc?Screen=$1 [L]

    ### End - Inserted by Miva Merchant

    Options +FollowSymlinks
    RewriteEngine On
    RewriteCond %{http_host} ^heavytshirt.com [nc]
    RewriteRule ^(.*)$ http://www.heavytshirt.com/$1 [r=301,nc]


    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /blog/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /blog/index.php [L]
    </IfModule>

    # END WordPress

現在、後続のサブディレクトリに入力して投稿にアクセスできます-次のように: http://www.heavytshirt.com/blog/category/summershirts/

誰かが入力したときにブログのホームページが表示され、http://www.heavytshirt.com/blog メインサイトに影響を与えないようにするにはどうすればよいですかwww.heavytshirt.com

4

2 に答える 2

0

あなたの問題は、あなたが設定したためです

DirectoryIndex /mm5/merchant.mvc?Screen=SFNT

/blog/ はディレクトリであり、設定したルールは /blog/ のディレクトリ インデックスとして一致するためです (ディレクトリが実際に存在するため)。

目的の結果を得るには、2 つの Rewrite ディレクティブを組み合わせる必要があります (RewriteEngine On を 2 回使用する必要はありません)。

おそらく、最初から行ごとにテストを開始して、目的の結果が得られることを確認することをお勧めします。

これをテストすることはできませんが、アイデアはわかります:

Options +FollowSymlinks

RewriteEngine On

RewriteBase /
RewriteRule ^mm5/admin.mvc? - [L]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^product/([^/.]+).html$ /mm5/merchant.mvc?Screen=PROD&Product_code=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^category/([^/.]+).html$ /mm5/merchant.mvc?Screen=CTGY&Category_code=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^product/([^/]+)/([^/.]+).html$ /mm5/merchant.mvc?Screen=PROD&Category_code=$1&Product_code=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^([^/.]+).html$ /mm5/merchant.mvc?Screen=$1 [L]
RewriteCond %{http_host} ^heavytshirt.com [nc]
RewriteRule ^(.*)$ http://www.heavytshirt.com/$1 [r=301,nc]

RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
于 2013-06-21T19:38:53.867 に答える