.htaccess重定向+重写一个规则

时间:2014-06-10 12:11:53

标签: .htaccess

  1. 我有一个重写规则来隐藏index.php,这是 工作正常。

    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]
    
  3. 重定向工作正常,但现在我也在URL中获得了index.php,它来自REQUEST_URI。

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

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

1 个答案:

答案 0 :(得分:1)

(1)规则顺序很重要。 (2)last标志并不意味着最后;这意味着在这个循环中持续。 (从Apache 2.4开始,结束标志会执行您最后的想法。有关此内容的更多讨论,请参阅我的Tips for debugging .htaccess rewrite rules。所以在这种情况下,规则(1)触发,然后mod_rewrite再次循环,这次规则(2)触发给你找到的东西。

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

相关问题