我有一个 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
或时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]
但没有结果。有什么建议吗?提前谢谢。
答案1
首先,如果你有权访问服务器配置,则不应使用 .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>