簡體   English   中英

在 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/$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 目錄(如果存在)。 所有更改后重新啟動服務器。

您可以在 wp-config.php 文件中添加以下代碼行

define('WP_HOME','http://sub.domain.com');
define('WP_SITEURL','http://sub.domain.com');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM