使用htaccess我正在进行301重定向以将旧网址重定向到新网址,问题是网址包含存储在数据库中的ID。但是我有一个带有新ID的新数据库,所以现在当旧URL重定向到新URL时,页面上会加载不同的记录。所以我所做的就是将旧的ID与新的ID一起存储,以便我知道旧的id属于新的id。但是,我怎么能检测到有人试图访问旧网址?有没有办法在PHP中检测到来到页面的人正在通过301重定向?由于SEO的原因,我不想在网址中添加任何新内容,所以我真的需要知道我是否可以通过301重定向来检测他们是否来到此页面。希望这是有道理的。
答案 0 :(得分:2)
将另一个参数添加到重定向,例如redirect=true
,检查参数以让您的应用知道它是重定向,启动会话,然后再次重定向到最终的未更改的网址,比较会话以了解,用户来自重定向的网址。
或者做Salman所说的,使用规范网址。
答案 1 :(得分:0)
脚本不会知道某些内容已被重定向到它。不是重定向到,而是index.php?id=12345
添加一个中间重定向,您可以在其中确定正确的URL。
首先,使用临时变量名称重定向.htaccess,例如index.php?oldid=12345
然后在该脚本中执行:
if (isset($_POST['oldid'])) {
$id = fetch_new_id();
header("Location: index.php?id=$id");
}
答案 2 :(得分:0)
我认为您无法检测已设置的http状态,但使用.htaccess可以将其他变量添加到重定向的网址或将ID重命名为其他变量名称。
答案 3 :(得分:0)
为什么不通过php处理所有旧的URL加上重写并使代码直接301重定向到带有新id的新URL?