如何使用NginX从Magento中删除index.php
我一直在尝试从URL中删除“index.php”。如果在管理中将“使用Web服务器重写”设置为“是”,我可以使其不显示index.php,但我的其他商店视图(西班牙语)都有404错误。我发现的东西就在这里:但没有多少成功如何使用NginX从Magento中删除index.php,magento,url,nginx,rewrite,Magento,Url,Nginx,Rewrite,我一直在尝试从URL中删除“index.php”。如果在管理中将“使用Web服务器重写”设置为“是”,我可以使其不显示index.php,但我的其他商店视图(西班牙语)都有404错误。我发现的东西就在这里:但没有多少成功 看来这将是一个简单的重写。但我开始认为使用NginX是不可能的。您是否尝试过使用以下方法将请求重定向到index.php引导程序: location / { try_files $uri $uri/ /index.php?$query_string; } 您需要将其添
看来这将是一个简单的重写。但我开始认为使用NginX是不可能的。您是否尝试过使用以下方法将请求重定向到index.php引导程序:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
您需要将其添加到vhost文件中,然后重新启动nginx,使其正常工作您是否尝试使用以下方法将请求重定向到index.php引导程序:
location / {
try_files $uri $uri/ /index.php?$query_string;
}
您需要将其添加到vhost文件中,然后重新启动nginx,使其工作最好的方法是使用Apache或nginx通过vhost配置完成。您不必为此更改Magento代码库 如果您使用的是Apache,通常这是Magento的
.htaccess
的一部分,或者在VHost config中复制以下代码
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
更改这些后,需要重新加载相应服务器的配置
除此之外,您还需要启用:
Magento Admin > System > Config > General > Web
> Search Engines Optimization > Use Web Server Rewrites > YES
最好的方法是通过vhost配置使用Apache或Nginx。您不必为此更改Magento代码库 如果您使用的是Apache,通常这是Magento的
.htaccess
的一部分,或者在VHost config中复制以下代码
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
更改这些后,需要重新加载相应服务器的配置
除此之外,您还需要启用:
Magento Admin > System > Config > General > Web
> Search Engines Optimization > Use Web Server Rewrites > YES
我尝试了几种不同的配置。我没有设置vhost。每次我设置vhost时,我都会有奇怪的行为,大部分是我的链接,比如分类,基本上是所有链接,下载页面而不是进入页面。当我打开下载的页面时,它会说:“哎呀,看起来你的PHP版本无效。”这是不正确的。但是,是的,我在配置文件的底部有您发布的代码。这必须在您的服务器指令中(通常位于vhost文件中)。如果你已经有一个
位置/
块,你需要用我发布的块替换它。完成后,您需要重新启动nginx。我有15个位置块。它们都在服务器块内。我将在所有地点试用,看看是否有效。我把它从底部拿下来,因为我看不出有什么不同。我的这一点基本上是403。我的日志说,*1目录索引“C:/mba/www/”是禁止的,客户机:127.0.0.1,服务器:,请求:“GET/HTTP/1.1”,主机:“www.mysite.com”,但如果我将index.php添加到其中,就可以了。我认为问题在于它不是一个查询字符串。它没有“?”,只有一个/index.php/../它不应该是这样的,因为这不是URL的结尾。好像有两个结局。我可能不得不回到阿帕奇,至少这只是开玩笑而已。我在这上面浪费了一个月的时间。我试过几种不同的配置。我没有设置vhost。每次我设置vhost时,我都会有奇怪的行为,大部分是我的链接,比如分类,基本上是所有链接,下载页面而不是进入页面。当我打开下载的页面时,它会说:“哎呀,看起来你的PHP版本无效。”这是不正确的。但是,是的,我在配置文件的底部有您发布的代码。这必须在您的服务器指令中(通常位于vhost文件中)。如果你已经有一个位置/
块,你需要用我发布的块替换它。完成后,您需要重新启动nginx。我有15个位置块。它们都在服务器块内。我将在所有地点试用,看看是否有效。我把它从底部拿下来,因为我看不出有什么不同。我的这一点基本上是403。我的日志说,*1目录索引“C:/mba/www/”是禁止的,客户机:127.0.0.1,服务器:,请求:“GET/HTTP/1.1”,主机:“www.mysite.com”,但如果我将index.php添加到其中,就可以了。我认为问题在于它不是一个查询字符串。它没有“?”,只有一个/index.php/../它不应该是这样的,因为这不是URL的结尾。好像有两个结局。我可能不得不回到阿帕奇,至少这只是开玩笑而已。我在这上面浪费了一个月。