Dot-Htaccess
Apache2.4 mod_rewrite 不會根據訪問域將我重定向到子目錄
我有一個帶有公共目錄的 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.com
or時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 的速度。此外,使用兩個獨立的虛擬主機處理這個問題要容易得多。
/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>