我刚刚将Magento 1.8.1.0放到我的Digital Ocean托管服务器上。
我已将“使用Web服务器重写”设置为是,并且所有链接都会导致404 Not Found。 Magento目录位于/var/www/sitename.com/public_html/。那里有一个默认的Magento .htaccess
。服务器也启用了mod_rewrite
。此外,apache conf还有AllowOverride All
我已经尝试了大约8个小时的许多不同的.htaccess
文件和conf,似乎没有任何工作。
非常感谢任何帮助!
答案 0 :(得分:2)
您是否已对目录网址重写编入索引或重新编制索引? Magento Web服务器重写实际上是由Magento应用程序处理的 - 它们不在.htaccess
中处理,因此修改.htaccess
将无济于事。
我建议您恢复原始.htaccess
,将Magento主题设置为默认主题,重新编制目录网址重写索引,清除缓存以获得更好的衡量标准,然后重试。
如果仍然无效,请检查数据库表core_url_rewites。此表中应该有很多行 - 对于商店中的每个产品都有三行 - 而某些行将重写为类别,大多数行将重写为产品。下面是一个示例产品重写行,可帮助您确定该表是否具有正确的数据:
139349 2 product/2866/79 topcatname/subcatname/producturlkey.html catalog/product/view/id/2866/category/79 1 NULL NULL 79 2866
如果该表看起来具有正确的数据,那么要继续跟踪此错误,您应该询问该函数:
//file: app/core/Mage/Core/Controller/Varien/Front.php
//class: Mage_Core_Controller_Varien_Front
public function dispatch(){
//...
}
答案 1 :(得分:0)
启用模块重写并重新启动Apache为我做了诀窍。
sudo a2enmod rewrite
sudo service apache2 restart
您可以看到加载了哪些模块:
apache2ctl -M
如果启用了重写模块,应该看到类似的内容:
....
negotiation_module (shared)
php5_module (shared)
rewrite_module (shared)
setenvif_module (shared)
status_module (shared)
....