Dot-Htaccess

Apache2.4 mod_rewrite 不會根據訪問域將我重定向到子目錄

  • March 29, 2015

我有一個帶有公共目錄的 Apache2.4 伺服器/var/www/html。在那個目錄中,我有一個 Wordpress 網站.htaccess

RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

在 wp 站點的同一級別上,有一個帶有 RESTful API 的子目錄/var/www/html/api/

和一個臨時登陸頁面/var/www/html/temp/

我想要實現的是:

  • 當使用者訪問mydomain.comor時www.mydomain.com,他應該看到登錄頁面,temp因為它是根
  • 當使用者使用純 IP 訪問伺服器時,他應該會看到 wordpress 部落格(即xxx.xxx.xxx.xxx/顯示為部落格根目錄)並且應該以相同的方式訪問 api ( xxx.xxx.xxx.xxx/api/...)

我嘗試了很多組合,.htaccess例如:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?mydomain.com$
RewriteRule ^(/)?$ temp [L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

但沒有結果。有什麼建議麼?提前致謝。

首先,如果您有權訪問伺服器配置,則不應使用 .htaccess ,因為它會減慢 Apache 的速度。此外,使用兩個獨立的虛擬主機處理這個問題要容易得多。

  1. /etc/apache2/sites-enabled/000-default(對於 IP 和未指定的主機名):
<VirtualHost *:80>
       DocumentRoot /var/www/html
</VirtualHost>

2)/etc/apache2/sites-enabled/example.com為您的 example.com 和 www.example.com

<VirtualHost *:80>
       ServerName example.com
       ServerAlias www.example.com
       DocumentRoot /var/www/html/temp
</VirtualHost>

引用自:https://serverfault.com/questions/679107