我有一个客户,现在想将几十个 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
然后禁用此功能,因为它可能会对繁忙的站点造成很大的服务器负担。