【发布时间】:2012-08-27 12:33:43
【问题描述】:
我一直在尝试使用 mod-rewrite 从我的 Codeigniter 站点中删除“index.php”。但是我最终遇到了这个问题:
原始 URI: http://mysite.com/index.php/about
只有在删除 index.php 之后才能使其工作: http://mysite.com//about(注意多余的斜线)
删除多余的斜杠会导致 Codeigniter 无法“看到”域后的 url 字符串。
我现在尝试了 3 种不同的 mod-rewrite 方法,但最终都遇到了同样的问题 - URI 不起作用,除非您在域名之后添加一个额外的斜杠。
我当前的 mod_rewrite 代码:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteCond %{THE_REQUEST} !/system/.*
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,L]
RewriteCond $1 !\.(css|js|gif|jpe?g|png) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{HTTP_HOST} ^www.domain.co
RewriteRule (.*) http://domainname.co/$1 [R=301,L]
</IfModule>
【问题讨论】:
标签: php codeigniter mod-rewrite url-rewriting