一个 VirtualHost 组内的多个重定向/重写

一个 VirtualHost 组内的多个重定向/重写

我有一个客户,现在想将几十个 URL 指向他们的主要网站。我已将它们作为服务器别名添加到站点 apache 配置文件中...因此现在所有这些 URL 都指向主要网站...太棒了。

我遇到的问题是,如果在根目录访问这些别名中的任何一个(即 www.domain.com 而不是 www.domain.com/some-page/),那么我需要将它们重定向到站点内的特定页面(即,任何访问 domain.com 的人都可能需要被发送到 domain.com/special-landing-page/)。但是,对着陆页以外的任何内容的访问都应该照常进行,而无需任何重定向。

我已经为此奋斗了几个小时,但似乎找不到最佳解决方案。有人有什么建议吗?

编辑:啊,我实际上是这么做的……但无法让它工作。任何评论:

服务器名称 mgi.co.uk 服务器别名 mgi.co.uk *.mgi.co.uk 服务器别名 central-heating-nottingham.co.uk *.central-heating-nottingham.co.uk

    RewriteCond %{HTTP_HOST} ^(www.)?central-heating-nottingham.co.uk$ [NC]
    RewriteRule ^$ /nottingham [R,L]

DocumentRoot /home/ben/sites/mgi/releases/current/mgi

    WSGIScriptAlias and other WSGI stuff....

更新:我在日志中收到以下输出...

我得到以下输出:

127.0.0.1 - - [15/Jun/2010:22:07:50 +0100] [mgi.co.uk/sid#84464a8][rid#8711c60/subreq] (1)通过 /

127.0.0.1 - - [15/Jun/2010:22:07:56 +0100] [mgi.co.uk/sid#84464a8][rid#870dc50/initial] (2) 使用请求的 uri /favicon.ico 初始化重写引擎

127.0.0.1 - - [15/Jun/2010:22:07:56 +0100] [mgi.co.uk/sid#84464a8][rid#870dc50/initial] (3) 将模式 '^$' 应用于 uri '/favicon.ico'

127.0.0.1 - - [15/Jun/2010:22:07:56 +0100] [mgi.co.uk/sid#84464a8][rid#870dc50/initial] (1)通过 /favicon.ico

127.0.0.1 - - [15/Jun/2010:22:07:56 +0100] [mgi.co.uk/sid#84464a8][rid#8713c68/subreq] (2) 使用请求的 uri /favicon.ico 初始化重写引擎

答案1

RewriteCond %{HTTP_HOST} ^(www.)?domain.com$ [NC]
RewriteRule ^$ /special-landing-page [R,L]

发布你已经尝试过的方法。

在配置文件中使用以下内容来生成重写日志,以查看到底发生了什么

RewriteLogLevel 9
RewriteLog /tmp/rl

然后禁用此功能,因为它可能会对繁忙的站点造成很大的服务器负担。

相关内容