如何使用NginX从Magento中删除index.php

时间:2012-12-18 02:55:32

标签: magento url nginx rewrite

我一直在尝试从网址中删除“index.php”。我可以让它不显示index.php如果我在管理中将使用Web服务器重写设置为是,但我的其他商店视图(西班牙语)都有404错误。我发现关闭的事情是:http://www.magentocommerce.com/boards/viewthread/7931/P15/#t251897但没有太大的成功。

这似乎是一个简单的重写。但是我开始认为用NginX是不可能的。

2 个答案:

答案 0 :(得分:3)

您是否尝试使用以下内容将请求重定向到index.php引导程序:

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

您需要将其添加到您的vhost文件并重新启动nginx才能使其正常工作

答案 1 :(得分:3)

最好的方法是使用Apache或Nginx来实现vhost配置。您不必为此更改Magento代码库。

如果您使用的是Apache,通常这是Magento .htaccess的一部分,或者在VHost配置中复制以下代码

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

如果您使用的是Nginx,请务必将其添加到您的vhost配置中:

location / {
    try_files $uri $uri/ /index.php?$query_string;
} 

更改这些后,您需要重新加载各个服务器的配置。

除此之外,你需要打开:

Magento Admin > System > Config > General > Web 
    > Search Engines Optimization > Use Web Server Rewrites > YES