我在基于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
谢谢,
答案 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。