我将由 Apache 转到 Cherokee 进行一些试验
我想在切诺基中执行为 Apache 执行的重定向:
# 重定向到 WWW 规范名称 RewriteEngine On RewriteCond %{HTTP_HOST} !=www.domain.com RewriteRule ^http://www.domain.com%{请求URI} [R=301,L]
但找不到任何关于如何做到这一点的解释
任何帮助表示感谢
答案1
如果您只想重定向一个特定域/子域(或相当少量的域),则不需要单独的虚拟主机(尽管您可以根据需要选择这种方式)。以下是将裸域重定向domain.com
到其www
子域(www.domain.com
)的步骤(适用于 cherokee v0.99.39):
- 在您的 cherokee-admin 页面上 (http://127.0.0.1:9090/),单击
Virtual Servers
左侧导航栏上的链接,然后单击Nickname
要重定向的虚拟服务器的。您可能将此服务器命名为虚拟服务器domain.com
(或在其Host Match
部分中,它有一个条目*domain.com
);或者它可能只是default
虚拟服务器。 - 单击该
Behavior
选项卡。 - 单击
Add new rule
按钮。 - 选择。
Header
Rule Type
- 选择。
Host
Header
- 输入
^domain.com
(Regular Expression
然后按 Tab 键继续到下一个屏幕)。在这种情况下,我们将其添加^
到要重定向的域的前面,因此我们只匹配裸域,而不匹配任何子域。 - 单击该
Handler
选项卡。 - 选择。
Redirection
Handler
- 输入。
/(.*)
Regular Expression
- 输入
http://www.domain.com/$1
(再次按下 Tab 键以允许 UI 处理您的更改)。指示$1
将步骤 9 的正则表达式中第一个捕获组的内容放在哪里。 - 点击
Save
左侧导航按钮。 - 试试看!(导航到
http://domain.com/
并验证您是否已http://www.domain.com/
通过 301 重定向到。)
答案2
现在 Cherokee 的 Web 界面中有一个用于此目的的模板(至少在 1.0.8 版本中):
- 点击
vServers
顶部导航 - 按下
New
按钮 - 选择
Virtual Server Redirection
Tasks
- 启动向导
- 输入
example.com
Origin Domain
- 输入
www.example.com
Target Domain
- 点击
Create
按钮
您还可以将多个域重定向到Target Domain
:
- 编辑重定向虚拟服务器(它应该是具有文档根目录的服务器
/dev/null
) - 转到
Host Match
标签 - 应
Method
设置为Wildcards
(你可以选择Regular Expressions
) - 按下
Add New
按钮添加更多域名
答案3
修复该问题很可能很快就会发布:http://bugs.cherokee-project.com/722
答案4
找到答案
基本上需要创建另一个虚拟主机并将默认处理程序设置为重定向到原始主机。
所有信息都在这里 http://www.cherokee-project.com/doc/modules_handlers_redir.html
但我想要的是能够设置重定向,而不需要重新创建更多的虚拟主机,即 Apache 允许我使用 Mod Rewrite 内联的方式
希望他们能尽快为此创建一个处理程序:
即处理程序允许您选择 www.domain.com 和 domain.com 转到同一根目录,并在 www.domain.com 或 .domain.com 之间进行选择作为重定向另一个的主要方法:)希望这有意义。