php重定向和ical下载问题

时间:2010-12-23 05:16:59

标签: php

我们的应用程序有很多旧的链接,我正在尝试将它们重定向到新的URL。我无法进行.htaccess重定向,因为这个新的url是使用php生成的。因此我使用php的头函数将用户从redirect.php重定向到test.php。但问题是,如果用户访问example.com/redirect.php .. ical文件被下载,但浏览器中的url仍为example.com/redirect.php。它应该已更改为example.com/test.php。我正在使用301重定向。

我已经尝试了javascript window.location.href函数,但结果相同。我希望我已经正确解释了它。谢谢您的帮助。

第一个php文件,例如redirect.php,已经有了这个代码。

<?
header("Location: http://example.com/test.php");
?>

第二个文件test.php有这个代码来下载一个ical文件。代码是这样的。

<?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将更改为新位置。

1 个答案:

答案 0 :(得分:1)

你的redirect.php文件应如下所示:

 <?
 header("Location: http://example.com/test.php");
 exit;
 ?>

尝试一下,让我知道它是否有效。

修改

你正在测试什么浏览器?任何机会野生动物园? ,我猜我发现你有问题,网址保持不变因为在请求的uri上有一个下载文件,有些浏览器在你请求下载文件时不会更改网址(这意味着用户看到一个空白的页面),我知道safari 4做的很难我不知道任何解决方案(可能会改变你所有的网站链接到新的uri但你仍然有一个问题谷歌索引uri的)