搜索引擎优化的SEO友好URL不在Codeigniter内工作

时间:2015-09-24 06:44:18

标签: codeigniter routing opencart

我有一个主要基于Code igniter的网站。我在使用opencart.Everything工作正常,直到我尝试使用opencart seo友好网址。

完成后,它会显示codeigniter 404视图。

当url是xyz.com/store

时,如何绕过CI路由

我的Htaccess文件在这里:

# Customized error messages.
ErrorDocument 404 index.php

# Set the default handler.
DirectoryIndex index.php

# Various rewrite rules.
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
  #RewriteCond %{HTTPS} off
  #RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  RewriteCond %{HTTP_HOST} !^www\.(.*)
  RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]      
</IfModule>

1 个答案:

答案 0 :(得分:1)

问题可能是由.htaccess文件引起的。默认的Codeigniter .htaccess文件设置为将所有流量路由到您的公共目录index.php。为防止出现这种情况,您需要设置RewriteCond以排除您希望保留在codeigniter之外的所有目录。

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !^/(store[^/]*)$
  RewriteRule ^(.*)$ index.php?/$1 [L,QSA]
  RewriteCond %{HTTP_HOST} !^www\.(.*)
  RewriteRule (.*) http://www.%{HTTP_HOST}/$1 [R=301,L]
</IfModule>