目前我正在本地计算机上构建应用程序。申请位于
/www/projects/mycustomproject/
并且为了获得访问速度,它有自己的个人域名,让我们说mycustomproject.com
。我通过本地网络提供了我的Apache-PHP-MySQL,因此任何人都可以通过192.168.1.80
的IP地址访问我的项目,并将其链接到/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
答案 0 :(得分:0)
为什么不将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