2016-08-12 15 views
1

私のhtaccessファイルに問題があります。例えば

はindex.phpであるルートへのリダイレクトページ: 私はWWWを使用する場合、私はhttp://domain.com/jobsのようなURLを使用するか、そのリダイレクトページをdomain.com/jobs
をwww.domain.com/index.phpする。しかし場合.domain.com/jobsページを他のページにリダイレクトしていません。続き
[L]フラグはこの1つが一致した後にルールの処理を停止するmod_rewriteを告げる最後に、ショートカットである私が使用し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

です。

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

ありがとう@lisectech – Omkar

関連する問題