CodeIgniter中的.htaccess和尾部斜杠

时间:2011-01-04 15:41:04

标签: codeigniter

在我的配置文件中,我有:

$config['url_suffix'] = "/"; 

这是我的.htaccess:

    Options +FollowSymLinks
Options -Indexes
DirectoryIndex index.php
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|images|css|js|robots\.txt|favicon\.ico)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}      ^.+[^/]$
RewriteRule ^(.+)$              $1/   
RewriteRule ^(.*)$ index.php?/$1 [L,QSA] 

当我加载页面时,我没有得到尾随斜杠。我正在使用URI路由,但即使我转到控制器/视图的实际路径,我仍然没有得到尾随斜杠。

我做错了什么?我尝试在.htaccess的最后一行中的.php之后删除斜杠,但是没有这样做。

即使我添加“.html”作为我的网址后缀,也不会添加。那不是我的.htaccess。

如果我试图改为$route['news-and-events'] = "news";$route['news-and-events/'] = "news";我收到404错误

编辑:使用上面的.htaccess我收到一个错误,我正在使用不允许的字符,即使我在配置文件中添加“/”到我允许的字符串。

1 个答案:

答案 0 :(得分:1)

找到一个适合我的版本,将我的Blogger帖子导入我的Wordpress,然后我的后台链接无法正常工作,所以我只是用这个例子替换了我的.htaccess,看看吧!

http://www.high-on-it.co.za/2011/02/removing-trailing-html-from-url/

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_URI} \.html$

RewriteRule ^(.*)\.html$ $1 [R=301,L]

RewriteRule ^index\.php$ – [L]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . /index.php [L]