cir*_*100 12 browser http url-rewriting httpwebrequest
Web服务器如何实现url重写机制并更改浏览器的地址栏?
我不是要求具体信息来配置apache,nginx,lighthttpd或其他!
我想知道当服务器想要重写url时向客户端发送什么样的信息?
M'v*_*'vy 29
有两种类型的行为.
一个是重写,另一个是重定向.
服务器执行自身替换,使URL http://example.org/my/beatuful/page理解为http://example.org/index.php?page=my-beautiful-page
通过重写,客户端看不到任何内容,重定向仅在内部.浏览器中没有URL更改,只是服务器以不同方式理解它.
服务器检测到服务器不想要该地址.http://example.org/page1已移至http://example.org/page2,所以它告诉浏览器HTTP 3xx代码新页面是什么.然后客户端请求此页面.因此浏览器中的地址会发生变化!
该过程保持不变,此图表对此进行了详细描述:

备注每次重写/重定向都会触发对重写规则的新调用(例外情况IIRC)
RewriteCond %{REDIRECT_URL} !^$
RewriteRule .* - [L]
Run Code Online (Sandbox Code Playgroud)
可以用来阻止循环.(因为它已经发生过一次就没有重写).
小智 6
您是在谈论服务器端重写(例如 Apache mod-rewrite)吗?对于这些,地址栏通常不会改变(除非执行重定向)。或者你在谈论重定向?这些是通过让服务器响应 HTTP 代码(301、302 或 307)以及 HTTP 标头中的位置来完成的。
| 归档时间: |
|
| 查看次数: |
9435 次 |
| 最近记录: |