我在httpd.conf
中有这个:
<VirtualHost xx.xxx.xx.xxx>
Options All +ExecCGI
ServerAdmin hostmaster@thehost.com
DocumentRoot /var/www/html/domain.com
ServerName dl.domain.org
DirectoryIndex dlindex1.html
</VirtualHost>
...这很好(我需要的是'dl.domain.org'子域的DirectoryIndex
),但是现在我还需要改变{{1}基于IP地址,使用DirectoryIndex
。
这可能吗?
其他SO帖子告诉我,我无法有条件地设置.htaccess
..而是 使用DirectoryIndex
。
如果确实如此,那么,RewriteRule
和RewriteCond
是什么?
我在Apache中非常棒,但无论如何都尝试过很多东西,包括(实际的IP是我们2个开发者的IP):
RewriteRule
..甚至只是(作为绝对测试):
RewriteCond %{REMOTE_ADDR} ^111\.222\.333\.444$ [OR]
RewriteCond %{REMOTE_ADDR} ^555\.666\.777\.888$
RewriteCond %{SERVER_NAME} ^dl.domain.org
RewriteRule ^(.*)/$ $1/dlindex2.html
但似乎无论我尝试什么,只按照RewriteCond %{REMOTE_ADDR} ^555\.666\.777\.888$
RewriteRule (.*)/dlindex1.html$ $1/dlindex2.html
提供DirectoryIndex dlindex1.html
,而不是我想要的httpd.conf
作为该子域中的默认页面。开发者IP正在呼叫。
任何人都能指出我能做些什么才能得到我所追求的东西吗?即:......实际上,甚至只是有效地,动态地使用dlindex2.html
基于IP地址改变DirectoryIndex
?
答案 0 :(得分:0)
两种方式对我有用:
e.g:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} ^12\.34\.56\.78$
RewriteCond %{REQUEST_URI} index\.html$
RewriteRule .* /index1.html
RewriteCond %{REMOTE_ADDR} !^12\.34\.56\.78$
RewriteCond %{REQUEST_URI} index\.html$
RewriteRule .* /index2.html