2016-08-12 144 views
1

我有我的htaccess文件的问题。它重定向页面根本就是index.php文件

例如: 如果我使用的URL像http://domain.com/jobs或domain.com/jobs其重定向页面www.domain.com/index.php
但是,如果使用WWW .domain.com/jobs不会将页面重定向到其他页面。
以下是我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

使用htaccess的代码[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

谢谢@lisectech – Omkar

相关问题