我们的应用程序有很多旧的链接,我试图将它们重定向到新的url。我不能做.htaccess重定向,因为这个新的url是使用php生成的。因此,我使用php的头部函数将用户从redirect.php重定向到test.php。但问题是,如果用户访问example.com/redirect.php文件被下载,但浏览器中的url仍然是example.com/redirect.php。它应该更改为example.com/test.php。我正在使用301重定向。php重定向和ical下载问题
我已经试过JavaScript的window.location.href函数,但相同的结果进来。我希望我已经正确地解释它。谢谢您的帮助。
第一个php文件,例如redirect.php有这个代码。
<?
header("Location: http://example.com/test.php");
?>
第二个文件test.php有这段代码来下载一个文件。代码是这样的。
<?php
header("Content-Type: text/Calendar");
header("Content-Disposition: download; filename=calendar.ics");
echo "BEGIN:VCALENDAR\r\n";
//echo "X-WR-TIMEZONE:America/New_York\r\n";
echo "X-APPLE-CALENDAR-COLOR:#b91113\r\n";
echo "X-WR-CALNAME:$cal_name\r\n";
echo "VERSION:2.0\r\n";
echo "PRODID:-//Test//NONSGML Test//EN\r\n";
echo "METHOD:PUBLISH\r\n";
echo $data;?>
如果我删除Ical下载的标题代码,则此重定向工作。浏览器窗口中的URL更改为新位置。
你使用什么浏览器?你在其他浏览器中看到了什么行为?这可以说是一个浏览器错误,但我甚至都没有看到这是一个问题。 (有没有一个指定这个重定向的RFC?) – 2010-12-27 06:12:45
嗨保罗,我使用Mozilla,IE,Google Chrome。在Mozilla中,浏览器选项卡中的url保留example.com/redirect.php,并且会下载ical文件。 Ical文件下载在test.php里面。在Chrome和Safari浏览器中,即使是redirect.php url也不会显示在窗口中,并且文件被下载。由于我们有很多旧网址,因此我希望用户在加载旧网址时能够看到新位置。 – 2010-12-27 08:49:41