我正在调试HTTP 301永久重定向的问题.经过快速测试后,似乎Safari在重启时清除了301s的缓存,但Firefox却没有.
IE,Chrome,Firefox和Safari什么时候清除301s的缓存?
更新:例如,如果我想重定向example1.com到example2.com,但我不小心将其设置为重定向到example3.com,这是一个问题.我可以纠正错误,但是example1.com在此期间访问过的任何人都会将错误的重定向缓存到example3.com,因此他们将无法访问example1.com或者example2.com直到他们的缓存被清除.经过调查,我发现,没有Cache-Control和Expires标题设置.不正确的301响应的标头将是这样的:
HTTP/1.1 301 Moved Permanently
Date: Wed, 27 Feb 2013 12:05:53 GMT
Server: Apache/2.2.21 (Unix) DAV/2 PHP/5.3.8
X-Powered-By: PHP/5.3.8
Location: http://example3.com/
Content-Type: text/html
Run Code Online (Sandbox Code Playgroud)
我自己的测试表明:
如何将HTTPS重定向到HTTP?也就是说,与每个人所教导的(看似)相反.
我在HTTPS上有一台服务器,我为此支付了SSL认证和镜像,我没有并且只是为了紧急情况而保留,所以它不值得获得认证.
在我的客户端桌面上,我有一些快捷方式指向http://production_server和https://production_server(两者都有效).但是,我知道如果我的生产服务器出现故障,那么DNS转发就会启动,那些在其快捷方式上有"https"的客户端将会盯着https://mirror_server(这不起作用)和一个胖胖的Internet Explorer 7红屏不安为我的公司.
不幸的是,我不能只在客户端级别切换它.这些用户非常不懂计算机:并且非常有可能因为看到HTTPS"不安全"错误而感到恐惧(特别是现在Firefox 3和Internet Explorer 7处理它的方式:完全停止,有点谢天谢地,但没有帮助我这里大声笑).
这是很容易 找到 的Apache的解决方案为基于HTTP> HTTPS重定向,但对我的生活,我不能反其道而行之.
想法?
所以我有这个jQuery AJAX调用,响应来自服务器的302重定向形式.我想采用这种重定向并将其加载到iframe中,但是当我尝试使用javascript警报查看标题信息时,即使firebug正确地看到它,它也会出现空值.
这是代码,如果它有帮助:
$j.ajax({
type: 'POST',
url:'url.do',
data: formData,
complete: function(resp){
alert(resp.getAllResponseHeaders());
}
});
Run Code Online (Sandbox Code Playgroud)
我真的无法访问服务器端的东西,以便将URL移动到响应主体,我知道这将是最简单的解决方案,因此任何有关解析标头的帮助都会非常棒.
Redirect()和之间有什么区别RedirectPermanent().我读过一些文章,但我不明白何时必须使用Redirect()和RedirectPermanent().你能展示一些例子吗?
假设我有带有查询字符串参数的URL,如下所示:
/index.php?book=DesignPatterns&page=139
/index.php?book=Refactoring&page=285
Run Code Online (Sandbox Code Playgroud)
使用mod_rewrite,如何将它们重定向到这些SES URL?
/DesignPatterns/139
/Refactoring/285
Run Code Online (Sandbox Code Playgroud) 我正在使用ASP.NET MVC和jQuery,我有一个在每个页面上重复的UserControl.在每个页面请求中,都会发生AJAX回调.到现在为止还挺好.
但是当我在localhost并且我发布该网站时,我注意到这个AJAX正在抛出一个302错误.这仅发生在https页面上,仅在FF和Chrome中.在IE上,AJAX请求工作正常.
这302错误是什么?为什么它只出现在https页面上,只出现在FF和Chrome中?
我正在寻找有关广告服务器的一些信息.
有没有办法知道返回的jqXHR对象是否从另一个请求重定向?例如,拥有以下代码:
jQuery.ajax({
type: 'POST',
url: 'http://example.com/page.html',
complete: function(response, status) {
console.log(response.statusCode);
// do something
}
});
Run Code Online (Sandbox Code Playgroud)
如果使用301或302状态代码重定向ajax url,则响应将是重定向页面的结果,并将返回200(OK)状态代码.我认为这是一个jQuery的错误(不知道这是否是预期的恶作剧,因为最终的响应实际上是成功的)我不能得到原始响应Headers来检查是否存在Location Header,因为这是仅适用于重定向的请求.
具有上述代码的Firebug通过XHR记录这两个请求
http://example.com/page.html 302(暂时移动) http://example.com/redirect.html 200(确定)
但是jQuery只返回第二个请求的数据.
也许有办法从第一个请求中获取数据?或者获取响应URL并将其与原始请求中的URL进行比较?
好的,我已经做了相当多的搜索,但仍然找不到足够的东西来处理我的问题.
现在我有一个DNS记录,将所有其他子域重定向到我的服务器.我问的是什么会使example.mydomain.com返回HTTP/1.1 301和重定向到正义mydomain.com
我很抱歉,如果这已经被覆盖,我就找不到足够的具体内容.
ajax ×3
apache ×3
jquery ×3
redirect ×3
mod-rewrite ×2
.htaccess ×1
ads ×1
asp.net-mvc ×1
header ×1
http ×1
https ×1
jqxhr ×1
query-string ×1
regex ×1
ssl ×1