1

我在根目录中有一个电子商务网站,并且想将我的博客移动到子目录。我成功地从另一个域转移到了这个域,但是当我尝试转到博客主页时,它会重定向到我的电子商务网站的主页。

电子商务网站 - 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/ 的目录索引匹配(因为该目录实际存在)。

您必须结合两个 Rewrite Directives 以获得所需的结果(您不需要 RewriteEngine On 两次)。

最好从头开始逐行测试以确保获得所需的结果。

我无法对此进行测试,但您明白了:

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 回答
0

我没有调查您的 apache 配置,因为我相信它可以在 WordPress 中轻松配置。

进入您的 WordPress 管理面板,然后移至Settings / General Settings.

WordPress Address (URL)现在相应地更改和的值Site Address (URL)。阅读这篇 WordPress Codex 文章了解更多详情。

于 2013-06-21T19:05:29.540 回答