解决了 :)
RewriteCond %{THE_REQUEST} index.php
RewriteRule index.php(.*)$ http://%{HTTP_HOST}$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php/$1 [L]
我配置了一个重定向,以便我可以打开http://example.com/controller/action和 ModRewrite 将内部请求路由到 ...index.php/controller/action。
现在我想重定向一个用户,如果他自动打开http://example.com/index.php/controller/action到 index.php/controller/action(301 重定向)。但现在我得到了无限循环的重定向。
是否有机会将内部重定向分离到引导 index.php 并防止一个用户可以使用 index.php 子路径打开 url?
我试过这个,但这不起作用(无循环):
RewriteCond %{REQUEST_URI} index.php/(.*)
RewriteRule ^index.php/(.*)/$ http://%{HTTP_HOST}/$1/ [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php/$1 [L]