我在使我的网站的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
为什么这个?/要来?
答案 0 :(得分:0)
您的问题出在这行上,您在索引前缺少'./
',并且在index.php前面有一个'?
':
RewriteRule ^(.*)$ index.php?/$1 [L]
您必须将其更改为:
RewriteRule ^(.*)$ ./index.php/$1 [L]