2016-08-12 3 views
1

У меня проблема с файлом htaccess. Его страница перенаправления к корню, который index.php

Например: Если я использую URL как http://domain.com/jobs или domain.com/jobs своей страницы перенаправления на www.domain.com/index.php
Но если я использую WWW .domain.com/jobs не перенаправляет страницу на другую страницу.
Ниже приводится код Htaccess, используемый мнойhtaccess - перенаправление на другую страницу

<IfModule mod_rewrite.c> 
     <IfModule mod_negotiation.c> 
      Options -MultiViews 
     </IfModule> 

     RewriteEngine On 

     # Redirect Trailing Slashes... 
     RewriteRule ^(.*)/$ /$1 [L,R=301] 

     # Handle Front Controller... 
     RewriteCond %{REQUEST_FILENAME} !-d 
     RewriteCond %{REQUEST_FILENAME} !-f 
     RewriteRule^index.php [L] 

    RewriteCond %{HTTP_HOST} !^www.domain.com$ [NC] 
    RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301] 
</IfModule> 

ответ

2

Флаг [L] ярлык для последнего, который говорит mod_rewrite прекратить обработку правил после этого один подобран.

RewriteRule^index.php [L] правило обрабатывается, и оно перенаправляет ваш запрос на index.php, пропустив правила после этого.

Решение - изменить порядок ваших правил. Он должен выглядеть следующим образом:

<IfModule mod_rewrite.c> 
     <IfModule mod_negotiation.c> 
      Options -MultiViews 
     </IfModule> 

     RewriteEngine On 


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

     # Redirect Trailing Slashes... 
     RewriteRule ^(.*)/$ /$1 [L,R=301] 

     # Handle Front Controller... 
     RewriteCond %{REQUEST_FILENAME} !-d 
     RewriteCond %{REQUEST_FILENAME} !-f 
     RewriteRule^index.php [L] 
</IfModule> 

Он будет перенаправлен на www.domain.com, а затем будут выполнены другие правила проверки.

+0

thanks @lisectech – Omkar

Смежные вопросы