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

时间:2014-03-27 08:44:22

标签: url ssl nginx https

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

这是我之前为使SSL工作而提出的问题,但不包括通过https My question about SSL for specific url提供的index.php

所以现在我有两个选择,我不知道如何使用它们。第一种是隐藏index.php,用于通过https提供的URL。第二个是对我在my previous question中使用的代码进行一些修改,以便即使在url中输入index.php也可以使用https。

任何帮助都会受到赞赏,因为我不知道如何做任何事情!!

谢谢

更新:当使用Nginx文件夹保护“auth_basic和auth_basic_user_file”时,我提供的解决方案似乎不太适用。

1 个答案:

答案 0 :(得分:1)

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

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

原始代码是:

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;
  }
}

所以更改是从位置/ 位置〜* ^ /

我希望对遇到这个问题的人有用。