0

我在生产服务器上有一个可用的 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,它是 fishpig 扩展,它直接从不存在的 /blog 路径排列。

4

1 回答 1

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 个内部服务器错误,因此请务必保留备份。

试试这个,我希望它有所帮助。

于 2013-03-14T08:12:30.210 回答