切诺基 301 重定向规则

切诺基 301 重定向规则

我将由 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):

  1. 在您的 cherokee-admin 页面上 (http://127.0.0.1:9090/),单击Virtual Servers左侧导航栏上的链接,然后单击Nickname要重定向的虚拟服务器的。您可能将此服务器命名为虚拟服务器domain.com(或在其Host Match部分中,它有一个条目*domain.com);或者它可能只是default虚拟服务器。
  2. 单击该Behavior选项卡。
  3. 单击Add new rule按钮。
  4. 选择。HeaderRule Type
  5. 选择。HostHeader
  6. 输入^domain.comRegular Expression然后按 Tab 键继续到下一个屏幕)。在这种情况下,我们将其添加^到要重定向的域的前面,因此我们只匹配裸域,而不匹配任何子域。
  7. 单击该Handler选项卡。
  8. 选择。RedirectionHandler
  9. 输入。/(.*)Regular Expression
  10. 输入http://www.domain.com/$1(再次按下 Tab 键以允许 UI 处理您的更改)。指示$1将步骤 9 的正则表达式中第一个捕获组的内容放在哪里。
  11. 点击Save左侧导航按钮。
  12. 试试看!(导航到http://domain.com/并验证您是否已http://www.domain.com/通过 301 重定向到。)

答案2

现在 Cherokee 的 Web 界面中有一个用于此目的的模板(至少在 1.0.8 版本中):

  1. 点击vServers顶部导航
  2. 按下New按钮
  3. 选择Virtual Server RedirectionTasks
  4. 启动向导
  5. 输入example.comOrigin Domain
  6. 输入www.example.comTarget Domain
  7. 点击Create按钮

您还可以将多个域重定向到Target Domain

  1. 编辑重定向虚拟服务器(它应该是具有文档根目录的服务器/dev/null
  2. 转到Host Match标签
  3. Method设置为Wildcards(你可以选择Regular Expressions
  4. 按下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 之间进行选择作为重定向另一个的主要方法:)希望这有意义。

相关内容