【问题标题】:SEO friendly URL of opencart not working inside CodeigniterOpencart 的 SEO 友好 URL 在 Codeigniter 中不起作用
【发布时间】:2015-09-24 06:44:17
【问题描述】:

我有一个主要基于 Code igniter 的网站。在里面我有一个使用 opencart 的商店设置。在我尝试使用 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>

【问题讨论】:

  • 发布您的 htaccess。您需要添加一个例外以从您的 htaccess 规则中删除 /store 目录。
  • @Jeemusu 我已经添加了 htaccess 文件。提前致谢

标签: codeigniter routing opencart


【解决方案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>

【讨论】:

  • 谢谢,但还是一样。 :(
  • 很奇怪,我在本地都进行了测试,它们都有效。可能是一个更大的问题。
  • 完成。我犯了一个错误,我在商店文件夹中的 htaccess 文件被禁用了。谢谢
猜你喜欢
  • 1970-01-01
  • 2016-05-28
  • 1970-01-01
  • 2014-01-25
  • 1970-01-01
  • 2012-12-20
  • 1970-01-01
  • 2011-12-24
  • 2015-07-30
相关资源
最近更新 更多