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

时间:2017-10-19 10:46:54

标签: .htaccess codeigniter https

我在基于codeigniter的网络应用上添加了从非www到www的强制重定向。

这样做之后它工作正常,但它在URL中显示了一个额外的index.php,我需要将其删除。

以下是我的网址:http://www.testprofile.com(工作精细)

这是导致的问题:

https://testprofile.com/result/184/1103511096450940jawadamin(非www网站,会自动添加www。)

打开上面的网址会重定向到www,但也会在网址中添加一个应删除的附加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>

请帮我删除这个烦人的index.php

谢谢,

1 个答案:

答案 0 :(得分:1)

你错过了重写条件行右侧的点。它应该像

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>

如果反斜杠字符apache没有保留点,则将其读为通配符。您可以在this page找到一些有用的提示。

另外,您可以查看useful .htaccess snippets here