如何在子域中设置 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
然后我需要为我们的商店创建一个子域,所以我在这个文件夹中创建了一个:/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 来覆盖。
我在 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
然后我需要为我们的商店创建一个子域,所以我在这个文件夹中创建了一个:/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 来覆盖。