服务器 Gind.cn

服务器问题集锦,包括 Linux(Ubuntu, Centos,Debian等)和Windows Server服务器

nginx反向代理apache url静默重写和https重写

我有一个nginx + Apacheconfiguration运行。 我对nginx非常新,我有相当长的时间来学习它。 首先我想做一个基本的重写。 根据我的理解,当nginx被用作反向代理时,来自apache的.htaccess仍然可以工作。 可悲的是 – 我的理解不完全正确 – 有些部分是有效的,有些则不是。 所以我试图用.htaccess做一个基本的重写 RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^/?index.* /fp/ [P] 我发现在.htaccess中使用[P]标志而不是正常的重写 – 会导致无法find/index.html的错误(在整个站点上没有任何index.html如此清晰它不能被发现)。 我也尝试过使用[L]标志,而不是像我期望的那样默默转发,而是做了一个redirect,所以用户可以在地址栏中看到/ fp /而不是我正在寻找的结果。 所以 – 我把redirect移到了nginxconfiguration。 这似乎工作正常。 我做的nginxredirect是非常基本的使用if语句 if ($uri = '/'){ rewrite / /fp/ break; } 这个redirect只会redirect/不在/index.php或其他任何文件上。 接下来我有一个名为/login.php的文件。 我想转发用户到https://如果通过http://访问 所以我试图用$_SERVER['REQUEST_SCHEME'];做一个apachescheme检查$_SERVER['REQUEST_SCHEME']; 问题是 – 这是返回http是否其https://或http:// login.php在/ 所以对于初学者来说,我怎么才能让httpredirect到https只在login.php页面上。 我也应该注意到我试图做一个从httpredirect到https使用.htaccess,但作为服务器返回http和从来没有https导致无限循环。 除此之外,为什么apache的.htaccess [P]标志导致searchindex.html,并且为什么silectredirect突然公开? 如果我需要显示我的configuration […]