我有一个重写规则来隐藏index.php,这是 工作正常。
RewriteCond $1 !^(index\.php)
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
我目前正在将特定的子域重定向到另一个域。
RewriteCond %{HTTP_HOST} ^(www\.)?deutschland\.example\.com$ [NC]
RewriteRule ^ http://www.example.de%{REQUEST_URI} [NE,R=301,L]
重定向工作正常,但现在我也在URL中获得了index.php,它来自REQUEST_URI。
http://www.example.de/index.php/search/result
那么如何从这个重定向的URL中删除'index.php'? 注意:它只是使用相同的php网站应用程序,只使用国家/地区的多个域。
答案 0 :(得分:1)
(1)规则顺序很重要。 (2)last
标志并不意味着最后;这意味着在这个循环中持续。 (从Apache 2.4开始,结束标志会执行您最后的想法。有关此内容的更多讨论,请参阅我的Tips for debugging .htaccess rewrite rules。所以在这种情况下,规则(1)触发,然后mod_rewrite再次循环,这次规则(2)触发给你找到的东西。
交换两条规则,它将按预期工作。