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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/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服务器上的特定url中删除index.php_Url_Ssl_Nginx_Https - Fatal编程技术网

从Nginx服务器上的特定url中删除index.php

从Nginx服务器上的特定url中删除index.php,url,ssl,nginx,https,Url,Ssl,Nginx,Https,在过去的几个小时里,我一直在努力寻找一种合适的方法,从通过https提供的特定url中删除index.php。我想删除index.php的原因是,当通过https提供url时,它工作正常,没有问题。但是,当任何人在url index.php的末尾键入时,https可以更改为http,因此SSL在该url上无效,因为在这种情况下无法生成加密信息 这是我之前为获得SSL工作而提出的问题,但这不包括通过https提供的index.php 所以现在我有两个选择,我不知道如何去选择。第一个是隐藏通过htt

在过去的几个小时里,我一直在努力寻找一种合适的方法,从通过https提供的特定url中删除index.php。我想删除index.php的原因是,当通过https提供url时,它工作正常,没有问题。但是,当任何人在url index.php的末尾键入时,https可以更改为http,因此SSL在该url上无效,因为在这种情况下无法生成加密信息

这是我之前为获得SSL工作而提出的问题,但这不包括通过https提供的index.php

所以现在我有两个选择,我不知道如何去选择。第一个是隐藏通过https提供的url的index.php。第二个是对我在中使用的代码进行一些修改,这样即使在url中键入index.php,也可以使用https

任何帮助都将不胜感激,因为我不知道如何在这里做任何事情

谢谢


更新:当使用Nginx文件夹保护“auth\u basic和auth\u basic\u user\u file”时,我提供的解决方案似乎不起作用。

令人惊讶的是,我在我所追求的选项中找到了一个解决方案。我得到了第二个工作选项,而不是第一个,因为我在强制隐藏/删除index.php方面有很多困难

我所要做的就是将SSL强制到index.php的服务器https,更改很简单

原代码为:

server {
  listen 80;
  server_name example.com;
  # normal http settings
  location /secure_area/ {
    return 301 https://$http_host$request_uri$is_args$query_string;
  }
}
我得到的变化是:

server {
  listen 80;
  server_name example.com;
  # normal http settings
  location ~* ^/secure_area/ {
    return 301 https://$http_host$request_uri$is_args$query_string;
  }
}
所以变化是从位置/到位置~*^/


我希望它对任何遇到这个问题的人都有用。

你能写一个被重定向的坏URL的例子吗。好的,如果我写一个例子,www.mydomain.com/securearea/-->它将是这样的:https://www.mydomain.com/securearea/,这很好。然而,当我在最后将index.php添加到url时,我可以使用http手动删除https,这样url就不再安全了:http://www.mydomain.com/securearea/index.phpI会说这是一个很好的答案,但请记住,
~*
不区分大小写,这意味着
/secure\u ArEa/
也会匹配,如果您不想删除它,可以将其删除,或者使用
^~/secure\u area/
而不是代替Thank@MohammadAbuShady。我会试试看,看是否有效。我只是担心auth_basic和auth_basic_user_文件模块保护是否有效!!我刚刚尝试了^~/secure\u area/,但是只要我在浏览器上输入文件,就会下载该文件。我试过Chrome和FF。。。知道吗?你的php地址是什么<代码>位置?好吧,这很奇怪,我不知道为什么它不工作,但是nvm,用你的答案,它同样好。