0

我正在尝试做一个简单的 301 重定向,但我似乎遗漏了一些东西

这个想法是重定向myhost.com/crm/www.myhost.com/crm/. 所以我四处搜索并想出了:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]

它在我的根目录中工作得非常好(所以在 myhost.com 上)但是当按如下方式将它放在我的 crm 子文件夹中时它会失败(实际上它什么也没做):

AddDefaultCharset UTF-8

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule    ^$    public/    [L]
  RewriteRule    (.*) public/$1    [L]
  RewriteCond %{HTTP_HOST} !^www\.
  RewriteRule (.*) http://www.%{HTTP_HOST}/crm/$1 [R=301,L]
</IfModule>

我有点困惑我在这里做错了什么。我是否将规则放在错误的 .htaccess 文件中?

我试过搜索stackoverflow,但找不到适合我需要的答案。(因为它不是 crm.myhost.com)

4

1 回答 1

0
  RewriteRule    ^$    public/    [L]
  RewriteRule    (.*) public/$1    [L]
  RewriteCond %{HTTP_HOST} !^www\.
  RewriteRule (.*) http://www.%{HTTP_HOST}/crm/$1 [R=301,L]

您希望您的重定向规则任何类型的路由规则之前:

  RewriteCond %{HTTP_HOST} !^www\.
  RewriteRule (.*) http://www.%{HTTP_HOST}/crm/$1 [R=301,L]

  RewriteRule    ^$    public/    [L]
  RewriteRule    (.*) public/$1    [L]
于 2013-09-02T17:05:30.070 回答