2014-06-10 140 views
0
  1. 我有一个重写规则来隐藏index.php,这是 工作正常。.htaccess重定向+重写一条规则

    RewriteCond $1 !^(index\.php) 
    RewriteRule ^(.*)$ index.php/$1 [L,QSA] 
    
  2. 我目前正在将一个特定的子域重定向到另一个域。

    RewriteCond %{HTTP_HOST} ^(www\.)?deutschland\.example\.com$ [NC] 
    RewriteRule^http://www.example.de%{REQUEST_URI} [NE,R=301,L] 
    

重定向工作正常,但现在我在URL过,这是在未来REQUEST_URI得到的index.php。

http://www.example.de/index.php/search/result 

那么如何从这个重定向的URL中删除'index.php'? 注意:只使用国家级的多个域名,它只有相同的php网站应用程序。

回答

1

(1)规则顺序很重要。 (2)last标志并不意味着最后;这意味着在这个周期中持续。 (从Apache 2.4结束标志可以做到你最后一次的想法,请参阅我的Tips for debugging .htaccess rewrite rules了解更多关于此的讨论)。所以在这种情况下,规则(1)再次触发,然后mod_rewrite再次循环,这次规则(2)触发了您发现的内容。

交换两条规则,它将按预期工作。

+0

感谢您的详细解释,伟大的作品 – Girish