Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.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中隐藏虚拟文件夹_Nginx_Prestashop - Fatal编程技术网

在nginx中隐藏虚拟文件夹

在nginx中隐藏虚拟文件夹,nginx,prestashop,Nginx,Prestashop,我正在用多种语言调整一个全新的安装(一个prestashop fork) 问题:我的域名是“.es”(类似于mydomain.es),默认语言是西班牙语。因此,当西班牙用户加载页面时,url中会出现类似mydomain.es/es/的内容 我正试图“隐藏”这个“/es/”别名(或虚拟文件夹,不管叫什么),这样西班牙用户就可以看到mydomain.es/product-name而不是mydomain.es**/es/产品名,但其他语言仍然会显示该语言,如mydomain.es/en/**produ

我正在用多种语言调整一个全新的安装(一个prestashop fork)

问题:我的域名是“.es”(类似于mydomain.es),默认语言是西班牙语。因此,当西班牙用户加载页面时,url中会出现类似mydomain.es/es/的内容

我正试图“隐藏”这个“/es/”别名(或虚拟文件夹,不管叫什么),这样西班牙用户就可以看到mydomain.es/product-name而不是mydomain.es**/es/产品名,但其他语言仍然会显示该语言,如mydomain.es/en/**product-name

到目前为止,我已经尝试过:

location = /es/ {
        rewrite ^/es/(.*)$ /index.php last;
        }
这是:

rewrite ^/es/(.*)$ $1 last;
但是没有任何效果,仍然显示/es/文件夹

有人能帮我吗? 谢谢

PS:有关详细信息,请尝试以下内容:

location / {
  rewrite ^(.*)$ /es/$1;
}

Nginx是一个Web服务器,它不是一个Web应用程序。区别在于web服务器返回、缓存、保护由web应用程序准备的HTML页面和图像等。因此,如果您的HTML页面包含
,Nginx将按原样提供这些HTML页面。我要说的是,最好的办法是修复web应用程序中的问题。
/es/
页面也是虚拟的,真正的url是
domain.es/index.php?id_product=1&id_lang=1
,所以语言文件夹是一个虚拟重写,应该用我原来的问题来调整。打开你的网站页面,然后看看它的来源。你看到了什么链接?下一个问题:谁在HTML中生成了这样的链接?