目前,我正在本地计算机上构建应用程序。应用程序位于/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