2013-09-02 6 views
0

Я пытаюсь сделать простой 301 редирект, но я, кажется, что-то отсутствуетWWW перенаправить на вложенную папку (Htaccess 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) однако при размещении этого в моем УРКЕ вложенного следующим образом он выходит из строя (на самом деле это Безразлично» t ничего не делать):

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)

+0

Так что вы хотите только папка CRM должны быть доступны через www.domain, а остальная часть сайта должна быть доступна через оба? www и non www? – Prix

ответ

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] 
Смежные вопросы