如何在子域中设置 wordpress htaccess

How to setup wordpress's htaccess in a sub-domain

我在 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

但是没有任何反应?有人知道吗?谢谢

我假设 htaccess 文件在您的子域 "shop" 文件夹中?尝试删除规则目标中的前导斜杠:

# 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

事实证明,我的 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 来覆盖。