htaccess RewriteCond帮助新的开发站点

时间:2012-03-01 20:08:57

标签: apache .htaccess mod-rewrite

我在这里遇到了一个真正的问题,我希望有人可以帮助我 - 让我解释一下:

我有一个网站 - domain.co.uk - 在过去的6个月里,这个网站一直坐在持有页面上,所以google了解域名。 我也有domain.com和domain.org - 这些也是同时设置的。 我们正在开发一个使用Drupal多站点安装的新网站,其中所有多站点都是子域。

这是我的问题!!新的网站现在正在开发中,我需要向htaccess添加各种规则以重定向到保留页面,但这些规则对我来说是新的,我真的不知道我在做什么!

这是我需要做的: 主要域名是domain.co.uk。 我需要将请求domain.co.uk的所有用户重定向到domain.co.uk/holding/index.php, 但我需要为我们和开发人员提供IP地址排除以测试新网站,以便我们可以看到新网站的情况。 该网站还有.com别名,这需要访问domain.co.uk以获取所有请求。

所以这就是我到目前为止所做的事情并没有成功:


// I set this to re-write anything except the subdomains I want to see
RewriteCond %{HTTP_HOST} !^(www.domain\.co\.uk)|(subdomain1.domain\.co\.uk)|(subdomain2.domain\.co\.uk)|(subdomain3.domain\.co\.uk)$ [NC]
RewriteRule (.*)$ http://www\.domain\.co\.uk%{REQUEST_URI} [R=302,L]

 // then I have put in some rules for checking the ip's and producing a redirect that does not match earlier requests.
RewriteCond %{REMOTE_HOST} !^(xx\.xxx\.xxx\.xx)|(xx\.xx\.xx\.xx)$
RewriteCond %{REQUEST_URI} !/holding/index\.php$ [NC]
RewriteCond %{REQUEST_URI} !\.(jpe?g?|png|gif|css) [NC]
RewriteRule ^(.*)$ /holding/index\.php [R=302,L]

到目前为止的结果是:

如果普通用户访问domain.co.uk,它会重定向到保留页面 - 好 如果来自'排除的ip的地址列表的用户进入domain.co.uk他们也被重定向 - 不好 - 但是如果他们去.domain.co.uk / index.php,Drupal站点加载新设计。 如果来自排除的ip列表的用户转到subdomain1.domain.co.uk,他们会被重定向到保留页面 - 不好 - 我认为,这不应该由于第一条规则而发生,但我完全迷失了。

任何人都有任何想法如何使这个工作,以便具有允许IP的用户可以访问新网站及其所有子网域,但任何普通用户都被定向到保留页面。

非常感谢 - 我的脑袋即将爆炸!!

1 个答案:

答案 0 :(得分:0)

${REMOTE_ADDR}是IP地址,${REMOTE_HOST}是主机名(如果有)。

您还可以暂时将$ {REMOTE_ADDR}添加到保留页面的重定向中,以检查您是否输入了正确的地址,例如:

RewriteRule ^(.*)$ /holding/index\.php?ip=${REMOTE_ADDR} [R=302,L]