目前,我正在本地计算机上构建应用程序。应用程序位于/www/projects/mycustomproject/,为了获得访问速度,它具有自己的个人域,可以说mycustomproject.com。我已经通过本地网络提供了Apache-PHP-MySQL,因此任何人都可以通过IP地址访问我的项目,该IP地址为192.168.1.80,并且链接到/www/
要访问应用程序,您必须输入192.168.1.80/projects/mycustomproject/,这是问题所在,默认情况下,mycustomproject.com的配置为:

RewriteEngine on
RewriteBase /

要通过IP地址访问应用程序,它应该是:
RewriteEngine on
RewriteBase /projects/mycustomproject/

问题是我该如何定义如下规则:
if REMOTE_ADDR == 192.168.*
   RewriteBase /projects/mycustomproject/
else if HOSTNAME == 'mycustomproject.com'
   RewriteBase /
etc.

可能还有其他基于主机名或IP地址的自定义条件,并且IF/ELSE语句比RewriteCond更可取

最佳答案

为什么不将mycustomproject设置为其自己的virtual host呢?

设置主机,例如:

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

# default root for non-matched ServerName
DocumentRoot /www/

<VirtualHost *:80>
    ServerName local.mycustomproject.com
    DocumentRoot /www/projects/mycustomproject/
</VirtualHost>

然后,您可以为local.mycustomproject.com创建本地DNS或HOSTS文件条目。

这样,您可以在本地托管任意数量的项目(只需添加更多的<VirtualHost>部分),它们就非常接近实际的生产环境。

如果要使用“真实”域名,只需删除“本地”即可。在我的例子中。

您也可以使用ServerAlias进行设置,例如ServerAlias www.local.mycustomproject.com

09-25 21:40