Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用NginX从Magento中删除index.php_Magento_Url_Nginx_Rewrite - Fatal编程技术网

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

如何使用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; } 您需要将其添

我一直在尝试从URL中删除“index.php”。如果在管理中将“使用Web服务器重写”设置为“是”,我可以使其不显示index.php,但我的其他商店视图(西班牙语)都有404错误。我发现的东西就在这里:但没有多少成功


看来这将是一个简单的重写。但我开始认为使用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的结尾。好像有两个结局。我可能不得不回到阿帕奇,至少这只是开玩笑而已。我在这上面浪费了一个月。