我刚刚启动了我的第一个Magento商店(在CentOS和Apache上),我已经从我的设置子域切换 - http://prelive.mydomain.com(一切正常,启用了网址重写和工作) - 到实际子域http://www.mydomain.com,基本上只需执行以下操作:
像这样更新我的虚拟主机:
<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>
像这样编辑基本.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
它几乎可以工作......但是网址重写被打破了。我可以在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.html或{{3 }}
作为参考,在.htaccess中我也有(在子域切换期间保持不变):
RewriteBase /
和
RewriteRule .* index.php [L]
对我忘记了什么的想法?
非常感谢 本
答案 0 :(得分:1)
您很可能需要重新编制目录网址重写索引以合并新的网址更改!请参阅System > Index Management
并重新编制目录网址重写索引。
答案 1 :(得分:1)
好的 - 所以问题一直在服务器上,而不是Magento ......
基本上重写不起作用,因为我在httpd.conf和ssl.conf中的VirtualHost容器中都需要这个:
<Directory /var/www/html/www>
AllowOverride All
</Directory>
我仍然不明白它是如何在旧位置(它肯定没有这个)而不是新的位置...但它的工作原理与之前相同,使用“使用Web服务器”重写“在系统中打开&gt;配置&gt; Web,创建“干净”的URL,由mod_rewrite通过index.php重写。