当我去
www.example.co/courses
我被重定向到
https://example.co/index.php/courses
我想重定向到
https://example.co/courses
我尝试了什么
此处是我的.htaccess
文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.example\.co [NC]
RewriteRule ^(.*)$ https://example.co/$1 [L,R=301]
</IfModule>
如何删除重定向网址的/index.php/
部分?
答案 0 :(得分:1)
您的外部重定向位置错误。他们需要在内部重写前(前端控制器之前)。例如:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteCond %{HTTP_HOST} ^www\.twocan\.co [NC]
RewriteRule ^(.*)$ https://twocan.co/$1 [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
如果在内部重写后有外部重定向,那么请求会被重写为/index.php/...
,然后变成外部重定向(重写过程在.htaccess
循环,所以它只会被重写为index.php
在第一个循环上。)