我正在使用.htaccess在我的网站上创建几个网页secure -/renew和/ renew-result。我有一个脚本,它接受/更新用户的输入,将它们发送到异地完成某些操作,然后将它们返回到/ renew-result。这可以在没有https重写规则的情况下运行,但是当我尝试实现规则时(见下文),用户不会返回/ renew-result,而是重定向到/ renew。.htaccess重写规则也在重写不同的网址
这是我的.htaccess文件的相关部分:
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^renew https://www.mydomain.com/renew [R,L]
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^renew\-result https://www.mydomain.com/renew-result [R,L]
感谢您的任何援助。
更换'的RewriteCond%{SERVER_PORT}^80 $'和'的RewriteCond%{} HTTPS和off',而不是'重写规则^ renew'应该是'^重写规则更新$'否则将被应用到任何开头的URL '/ renew'和'/ renew-result'也属于那个列表。 – Cheery 2014-11-22 02:28:03
感谢您的建议。为什么使用HTTPS而不是SERVER_PORT? – 3rik5 2014-11-22 23:18:29
因为https连接可以通过端口80完成到前端(如果存在),并且可以通过端口80完成,但是在'mod_rpaf'帮助下为'安全'连接设置环境。这就是我在我的服务器上做的事情--cachig nginx,它也实现了https连接,正常连接到后端apache,但提供有关连接类型的信息。另外后端可以在其他端口上运行,而不是在80端口上运行。 – Cheery 2014-11-22 23:33:47