如何在子域中设置wordpress的htaccess

时间:2015-01-14 01:40:37

标签: wordpress .htaccess woocommerce

我在godaddy上有一个wordpress网站,其中包含以下htaccess配置:

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

http://main-domain.com

然后我需要为我们的商店创建一个子域,所以我在这个文件夹中创建了一个:/ sub-domains / shop。我还安装了另一个wordpress和woocommerce,其永久链接设置为主机名。

当我导航到http://shop.main-domain.com时,它会正常呈现,但当我打开一个页面时,例如:http://shop.main-domain.com/checkout,它会重定向回http://main-domain.com

然后我创建了一个htaccess文件:

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

但没有任何反应?有人有什么想法吗?感谢。

2 个答案:

答案 0 :(得分:0)

我认为htaccess文件位于您的子域&#34; shop&#34;夹?尝试删除规则目标中的前导斜杠:

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

答案 1 :(得分:0)

事实证明,我的Godaddy的Windows共享主机不支持htaccess,而是为IIS创建了一个Web.config(在子域的根文件夹中):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
            <rule name="wordpress" patternSyntax="Wildcard">
                <match url="*"/>
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                    </conditions>
                <action type="Rewrite" url="index.php"/>
            </rule></rules>
    </rewrite>
  </system.webServer>
</configuration>

同样在所述托管中,php配置可以通过在子域的根文件夹中创建另一个文件php5.ini来覆盖。