.htaccess Codeigniter从非www重定向到www时删除index.php

.htaccess Codeigniter从非www重定向到www时删除index.php,.htaccess,codeigniter,https,.htaccess,Codeigniter,Https,我在基于codeigniter的web应用程序中添加了一个从非www到www的强制重定向 这样做之后,它工作得很好,但它在URL中显示了一个额外的index.php,我需要删除它 这是我的网址:(工作正常) 以下是问题产生的原因: (非www站点,将自动添加www) 打开上面的URL会重定向到www,但也会在URL中添加一个应删除的index.php 这是我的.HTACCESS的代码 <IfModule mod_rewrite.c> RewriteEngine On RewriteC

我在基于codeigniter的web应用程序中添加了一个从非www到www的强制重定向

这样做之后,它工作得很好,但它在URL中显示了一个额外的index.php,我需要删除它

这是我的网址:(工作正常)

以下是问题产生的原因:

(非www站点,将自动添加www)

打开上面的URL会重定向到www,但也会在URL中添加一个应删除的index.php

这是我的.HTACCESS的代码

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
RewriteCond %{HTTP_HOST} ^testprofile.com [NC]
RewriteRule ^(.*)$ https://www.testprofile.com/$1 [L,R=301]
</IfModule>

重新启动发动机
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$index.php/$1[L]
重写cond%{HTTP_HOST}^testprofile.com[NC]
重写规则^(.*)$https://www.testprofile.com/$1[L,R=301]
请帮我删除这个讨厌的index.php


谢谢,

您错过了重写条件行右侧的转义点。应该是

RewriteCond %{HTTP_HOST} ^testprofile\.com [NC]
或者在你的整个例子中

<IfModule mod_rewrite.c>
RewriteEngine On
#If in root of web server you can use next line or set it appropriate according to location on server
#RewriteBase /

RewriteCond %{HTTP_HOST} ^testprofile\.com [NC]
RewriteRule ^(.*)$ https://www.testprofile.com/$1 [L,R=301]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

重新启动发动机
#若在web服务器的根目录中,您可以使用下一行,或者根据服务器上的位置将其设置为适当的
#重写基/
重写cond%{HTTP_HOST}^testprofile\.com[NC]
重写规则^(.*)$https://www.testprofile.com/$1[L,R=301]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则^(.*)$index.php/$1[L]
如果点不是由反斜杠字符apache保留的,则将其读取为通配符。你可以在上面找到一些有用的提示


另外,您也可以检查。

尝试一些我已经尝试过的htaccess@wolfgang1983,没有幸运地切换规则的位置:最后两行在
重写引擎后剪切并粘贴到
行。但您也需要在条件行中进行点转义,如
^testprofile\.com
。@Tpojka,在条件行中添加^testprofile\.com有效。谢谢,几天前我已经试过了,它果然起了作用。再次感谢:)