【发布时间】:2017-02-11 11:06:57
【问题描述】:
我正在尝试使用以下 apache 重写规则更改 PHP 文件的 url
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} \.(php)$
RewriteRule ^/(.*)$ http://localhost.weebsy1.com:90/$1 [R=307,L]
这个规则的问题是它两次发送所有的ajax请求,第一个请求状态是307,下一个在某些浏览器中被取消。就像下面的 ajaxRequests 截图一样:
请帮助我了解重写规则中出了什么问题。提前致谢。
【问题讨论】:
-
嗯,显然你有两个请求:第一个命中你的重写规则,得到响应的 http 状态为 307,下一个命中你重写的 URL。
-
好的,下一个请求被取消的原因是什么,这在 chrome 和 mozilla 中运行良好,问题出在 safari 中。
-
我怎样才能避免发送 2 个请求?
-
您不能使用该设置,除非客户端已经知道最终 URL 并直接请求而不依赖重定向。
-
好吧,显然你可以使用内部代理模块进行internal重写,这样客户端就不需要做任何事情了。
标签: php apache mod-rewrite url-rewriting