【问题标题】:Fishpig Wordpress Magento - http://example.com/blog resolves to www.example.com rather than www.example.com/blogFishpig Wordpress Magento - http://example.com/blog 解析为 www.example.com 而不是 www.example.com/blog
【发布时间】:2013-03-02 09:34:58
【问题描述】:

我在生产服务器上有一个可用的 Fishpig Wordpress Magento 实例。

所有绿色勾号表示已成功配置并在访问时显示

http://www.example.com/blog 

它有效。但是,当我尝试访问时

http://example.com/blog 

它让我回到 www.example.com 的 magento 主页。

我尝试将 wordpress 中的 url 设置为 http://example.com/bloghttp://www.example.com/blog,但在这两种情况下,它总是将我发送到 site.com 的主页。

这是一个问题,因为大多数有经验的网络用户在尝试访问某个位置时不会输入 www。

我的 htaccess 是由 Wordpress 生成的,看起来像

DirectoryIndex index.html index.php

<IfModule mod_rewrite.c>

#wp generated
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

请不要将 wordpress 站点文件位于 site.com/wp,它是从不存在的 /blog 路径直接排列的 fishpig 扩展。

【问题讨论】:

  • 当您安装 WordPress 并进行设置时,在站点 URL 字段中您确实将 /blog 地址输入正确了吗?

标签: wordpress .htaccess magento


【解决方案1】:

首先,解决此问题的一种方法是简单地将您的 Magento 网站设置为默认没有 www。在网址中。

在 Magento 中,转到系统 > 配置 > Web。

在“安全”和“不安全”选项卡中,找到“基本 URL”。

该值应如下所示:

http://www.site.com/

替换对域的所有引用,使其显示:

http://site.com/

不幸的是,它可能会在整个网站上多次出现。你需要在服务器的其他地方做同样的事情。

但是,如果您真的希望您的网站/博客显示 www.,则必须在 Magento 中正确转发 .htaccess 文件。我不太热衷于 Magento 的 .htaccess 文件的工作方式,但我确实知道如何转发 url 并保留其所有附加页面(但是,Magento 的设置可能会干扰)。

代码应如下所示:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^site.com$ [NC,OR]
RewriteRule ^(.*)$ http://www.site.com$1 [R=301,L]

再一次,我不知道这在 Magento 的设置下效果如何,但我已经成功地使用上面的代码将 url 重定向到我想要的正确 url。不过,上面的代码实际上是在 wordpress 网站上使用的。

检查 Magento 的 .htaccess 文件中的重写规则并尝试将其放在上面。不过要小心;如果您弄乱了 .htaccess 文件,很容易导致 500 个内部服务器错误,因此请务必保留备份。

试试这个,希望对你有帮助。

【讨论】:

  • 我使用了上述 RewriteEngineOn RewriteCond %{HTTP_HOST} ^site\.com [NC] RewriteRule (.*) site.com/$1 [L,R=301] 的稍微简化的版本,我从中提取网络,同时试图让我了解你的答案。谢谢!
  • 很高兴我能帮上忙。 ^_^
猜你喜欢
  • 2016-12-15
  • 2016-01-16
  • 1970-01-01
  • 2014-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多