在 wordpress 上使用 htaccess 到子文件夹的子域路由
Subdomain route to subfolder with htaccess on wordpress
我正在尝试创建一个显示 domain.com/sub
的子域 sub.domain.com
,而不更改地址栏。
我根据此处提出的其他问题提出了以下 .htaccess 规则:
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC]
RewriteRule ^((?!sub/).*)$ /sub/ [L,NC]
问题是我正在使用 WordPress 实例,我的 .htaccess 现在看起来像这样:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC]
RewriteRule ^((?!sub/).*)$ /sub/ [L,NC]
但是当我浏览 sub.domain.com 时,我被从 WordPress 重定向到我的主页 (domain.com)。我怎样才能正确地做到这一点?
尝试将其更改为:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC]
RewriteRule ^((?!sub/).*)$ /sub/ [NC]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</IfModule>
但还是不行
您可以在您的 wp-config.php 文件中添加以下代码行
define('WP_HOME','http://sub.domain.com');
define('WP_SITEURL','http://sub.domain.com');
您必须在 apache 配置中创建一个虚拟主机。
<VirtualHost *:80>
ServerName sub.domain.com
DocumentRoot /var/www/sub
</VirtualHost>
或 VirtualDocumentRoot
如果 mod_vhosts_alias 已启用。
<VirtualHost *:80>
ServerName sub.domain.com
ServerAlias *.domain.com
VirtualDocumentRoot /var/www/%1
</VirtualHost>
在上面我将它指向 /sub 目录(如果它存在)。完成所有更改后重新启动服务器。
我正在尝试创建一个显示 domain.com/sub
的子域 sub.domain.com
,而不更改地址栏。
我根据此处提出的其他问题提出了以下 .htaccess 规则:
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC]
RewriteRule ^((?!sub/).*)$ /sub/ [L,NC]
问题是我正在使用 WordPress 实例,我的 .htaccess 现在看起来像这样:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC]
RewriteRule ^((?!sub/).*)$ /sub/ [L,NC]
但是当我浏览 sub.domain.com 时,我被从 WordPress 重定向到我的主页 (domain.com)。我怎样才能正确地做到这一点?
尝试将其更改为:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC]
RewriteRule ^((?!sub/).*)$ /sub/ [NC]
# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</IfModule>
但还是不行
您可以在您的 wp-config.php 文件中添加以下代码行
define('WP_HOME','http://sub.domain.com');
define('WP_SITEURL','http://sub.domain.com');
您必须在 apache 配置中创建一个虚拟主机。
<VirtualHost *:80>
ServerName sub.domain.com
DocumentRoot /var/www/sub
</VirtualHost>
或 VirtualDocumentRoot
如果 mod_vhosts_alias 已启用。
<VirtualHost *:80>
ServerName sub.domain.com
ServerAlias *.domain.com
VirtualDocumentRoot /var/www/%1
</VirtualHost>
在上面我将它指向 /sub 目录(如果它存在)。完成所有更改后重新启动服务器。