wordpress - 在 wordpress 上使用 htaccess 将子域路由到子文件夹

标签 wordpress .htaccess subdomain

我正在尝试创建一个子域 sub.domain.com显示 domain.com/sub无需更改地址栏。

我根据此处提出的其他问题提出了以下 .htaccess 规则:

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$ [NC]
RewriteRule ^((?!sub/).*)$ /sub/$1 [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/$1 [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/$1 [NC]

# BEGIN WordPress
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
</IfModule>

但它仍然无法正常工作

最佳答案

您必须在 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 目录(如果存在)。所有更改后重新启动服务器。

关于wordpress - 在 wordpress 上使用 htaccess 将子域路由到子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59216801/

相关文章:

php - 在 WooCommerce 中获取可变产品的所有变体属性和价格

java - Tomcat:如何将不同的目录指向同一个 WEB-INF

.htaccess - 如何使用 .htaccess 从子域重定向到子文件夹

php - 我想在一个单独的 php 文件上运行 wp_query 以进行 ajax 调用

javascript - 将 2 个变量传递给 Paypal

javascript - wc_countries - 状态选择下拉列表 - woocommerce

.htaccess - OpenCart htaccess 重定向到 WWW 和 SSL

php - 用户手册(seo + 自动生成)

javascript - Mod_Rewrite 两个静态目录内的变量动态目录

amazon-web-services - 带有 Api 网关的 AWS Route 53 通配符子域