带有.htaccess的CodeIgniter重定向给出错误

时间:2019-04-12 03:09:31

标签: .htaccess codeigniter url-redirection codeigniter-htaccess

我在使我的网站的seo友好网址方面遇到问题。因此,我想将下面的所有网址重定向到http://example.in/

http://example.in/index.php
http://www.example.in/
http://www.example.in/index.php
http://www.example.in/Home
http://www.example.in/Home/
http://www.example.in/Home/index

我的.htacces看起来像

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

RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.php($|\ |\?)
RewriteRule ^ /%1 [R=301,L]

RewriteCond %{HTTP_HOST} ^www.example.in$
RewriteRule ^(.*)$ http://example.in/$1 [R=301]
</IfModule>

和配置文件看起来像

$config['index_page'] = ''; 
$config['base_url'] = 'http://example.in/'; 
$config['uri_protocol'] = 'REQUEST_URI';

问题在于,这3个网址都可以重定向。

http://example.in/index.php
http://www.example.in/
http://www.example.in/index.php

但是在检查其他人时

http://www.example.in/Home
http://www.example.in/Home/
http://www.example.in/Home/index

它们重定向到index.php吗?

http://www.example.in/index.php?/Home
http://www.example.in/index.php?/Home/
http://www.example.in/index.php?/Home/index

或这样,如果我添加用于删除index.php的代码

http://www.example.in/?/Home
http://www.example.in/?/Home/
http://www.example.in/?/Home/index

为什么这个?/要来?

1 个答案:

答案 0 :(得分:0)

您的问题出在这行上,您在索引前缺少'./',并且在index.php前面有一个'?':

RewriteRule ^(.*)$ index.php?/$1 [L]

您必须将其更改为:

RewriteRule ^(.*)$ ./index.php/$1 [L]