0

我刚刚启动了我的第一个 Magento 商店(在 CentOS 和 Apache 上),我已经从我的设置子域 - http://prelive.mydomain.com(一切正常,启用 url 重写并正常工作)切换到实时子域http://www.mydomain.com,基本上只需执行以下操作:

  1. 通过管理界面清除缓存
  2. 更新数据库中的安全和不安全的基本 URL
  3. 将整个站点文件系统从 /var/www/html/prelive 移动到 /var/www/html/www (我尝试复制,但它导致了各种权限问题,我稍后会解决!)
  4. 手动编辑 var/resource_config.json 中的媒体基本路径
  5. 像这样更新我的虚拟主机:

    <VirtualHost *:80>
        DocumentRoot /var/www/html/www
        ServerName www.mydomain.co.uk
        ServerAlias www.mydomain.co.uk
        ErrorLog logs/www.mydomain.co.uk-error_log
    </VirtualHost>
    
  6. 像这样编辑基础 .htaccess 文件 ()

    SetEnvIf Host www\.mydomain.co.uk MAGE_RUN_CODE=angling_r_en
    SetEnvIf Host www\.mydomain.co.uk MAGE_RUN_TYPE=store
    SetEnvIf Host ^mydomain.co.uk MAGE_RUN_CODE=angling_r_en
    SetEnvIf Host ^.mydomain.co.uk MAGE_RUN_TYPE=store
    

它几乎可以工作......但是url重写被破坏了。我可以在http://www.mydomain.com上看到该站点,但导航到子页面会得到 404(例如http://www.mydomain.com/path/to/product.html),除非我专门将 URL 更改为通过 index.php 指向http://www.mydomain.com/index.php/path/to/product.htmlhttp://www.mydomain.com/index.php/admin

作为参考,在 .htaccess 我也有(在子域切换期间保持不变):

RewriteBase /

RewriteRule .* index.php [L]

对我忘记的有什么想法吗?

非常感谢本

4

2 回答 2

1

好的 - 所以问题一直在服务器上,而不是 Magento ......

基本上重写不起作用,因为我在 httpd.conf 和 ssl.conf 的 VirtualHost 容器中都需要这个:

<Directory /var/www/html/www>
        AllowOverride All
</Directory>

我仍然不明白它是如何在旧位置(肯定没有这个)而不是新位置上工作的......但它现在和以前一样工作,“使用 Web 服务器重写”打开在 System > Configuration > Web 中打开,创建“干净”的 url,这些 url 由 mod_rewrite 通过 index.php 重写。

于 2013-04-06T19:47:37.277 回答
1

您很可能需要重新索引目录 URL 重写以合并您的新 URL 更改!查看System > Index Management目录 URL 重写并重新编制索引。

于 2013-04-04T11:16:35.210 回答