在404上使用PHP和MySQL重定向301

Mar*_*rty 1 php mysql apache redirect http-status-code-301

我正在将一个500多页的大型静态网站转移到Joomla安装中,但我想要做的,而不是编写500多行.htaccess文件,是使用PHP内置的301头重定向来动态重定向进来的请求到新的URL.

例如,在我移动网站后,以下网址将为404而没有重定向 -

http://www.foo.com/old_page.html

我希望它重定向到

http://www.foo.com/old-page.php
Run Code Online (Sandbox Code Playgroud)

所以我想创建一个旧URL的MySQL数据库及其相应的新URL,然后,如果服务器要返回404,首先要检查数据库是否有现有旧URL,如果匹配,则发出301重定向到新URL.对,我在这里有道理吗?

我该怎么办?我可以"谈论"逻辑,但不确定从哪里开始或如何实现它,因为虽然我理解PHP,但我真的不明白它如何与Apache一起工作(或者即使它会例如......) ?

如果你知道任何已经在做这个的脚本,那就更好了.

cha*_*aos 5

在Apache配置中,设置您喜欢的/404handler.php脚本的ErrorDocument.在其运行上下文中,$ _SERVER ['REQUEST_URI']将是所请求的原始页面的URI.进行数据库查找,如果找到要重定向的页面,请使用标题("Location:".$ wherever)重定向到它.