我已经在Mac中使用xampp完全在本地host中开发了一个多语言prestashop商店,并且可以工作。后台和商店(前台)。之后,我已将其部署到亚马逊,但出现了我的问题。后台工作,但商店不工作。
浏览器只显示一个 apache 404 页面,并告诉我在此服务器上找不到请求的 URL 域/prestashop/en/。但它确实存在。此外,后台证实了这一点。
检查错误时.log我发现以下消息:
[2015年3月12日星期四 11:12:37] [错误] [客户端 xxx.xxx.xxx.xxx] 文件不存在:/var/www/prestashop/en
对于我所看到的,Apache将语言(/en/)视为文件,而事实并非如此。我已经搜索了整个网络,但找不到解决方法。我知道这是服务器问题,但不知何故找不到解决方案。
这是怎么回事?
我通常按以下方式设置我的虚拟主机
<Directory /var/www/prestashop/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
解决方案从@LeonardoLanchas的问题帖子中移出。
我通过以下步骤解决了这个问题:
- 删除了根 .htaccess。
- 清除了 ./cache/smarty/compile 下的智能缓存文件
- 加载未安装的mod_rewrite模块:a2enmod 重写
- 将 Allowoverride All 指令添加到/etc/apache2/apache2.conf
<Directory /var/www/prestashop/> Options Indexes FollowSymLinks AllowOverride All </Directory>
- 重新启动的 apache2:服务 apache2 重新启动
在我的
范围内,在这个文件中/etc/apache2/apache2.conf
这是默认值:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
我把它改成:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
然后重新启动apache2
服务