条件DirectoryIndex基于IP地址,使用.htaccess

时间:2012-07-27 01:55:44

标签: apache .htaccess conditional

我在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。 如果确实如此,那么,RewriteRuleRewriteCond是什么? 我在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

1 个答案:

答案 0 :(得分:0)

两种方式对我有用:

https://unix.stackexchange.com/questions/44129/conditional-directoryindex-based-on-ip-address-using-htaccess

https://webmasters.stackexchange.com/questions/32727/conditional-directoryindex-based-on-ip-address-using-htaccess

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