www重定向子文件夹(htaccess 301)

时间:2013-09-02 13:34:17

标签: apache .htaccess redirect mod-rewrite

我正在尝试进行简单的301重定向,但我似乎错过了一些东西

我们的想法是将myhost.com/crm/重定向到www.myhost.com/crm/。 所以我用Google搜索并提出:

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

在我的root中运行得很好(所以在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)

1 个答案:

答案 0 :(得分: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]