将带有querystring值的404路由到PHP处理程序
我接管了一个在ASP中构建的站点,它为一系列第三方应用程序提供了一个端点。我们正在迁移到一个基于PHP的站点,但我们必须考虑这些端点 基本上,在唯一的站点上,它可能会发出类似test.asp?id=312131312&qs=42343434afsdf434这样的请求,我们希望将此路由到我们自己的test.php?id=312312312&qs=423434AFSDF434,然后我们可以完成其余的工作。有没有一种方法可以设置404重定向来捕获此消息并在Apache中正确路由?还有其他简单的路线吗 提前谢谢。我怀疑您是否想要404(未找到)?您可能需要301(永久重定向) 首先确保启用了将带有querystring值的404路由到PHP处理程序,php,apache,asp-classic,Php,Apache,Asp Classic,我接管了一个在ASP中构建的站点,它为一系列第三方应用程序提供了一个端点。我们正在迁移到一个基于PHP的站点,但我们必须考虑这些端点 基本上,在唯一的站点上,它可能会发出类似test.asp?id=312131312&qs=42343434afsdf434这样的请求,我们希望将此路由到我们自己的test.php?id=312312312&qs=423434AFSDF434,然后我们可以完成其余的工作。有没有一种方法可以设置404重定向来捕获此消息并在Apache中正确路由?还有其他简单的路线吗
mod_rewrite
模块,然后将其粘贴到.htaccess
文件中:
RewriteEngine On
RewriteBase /
RewriteRule ^test.asp$ test.php [R=301]
如果您希望将任何asp重定向到其php对应项,那么:
RewriteEngine On
RewriteBase /
RewriteRule ^(.*).asp$ $1.php [R=301]
注释中的示例:
文件夹中特定文件的规则:
RewriteRule ^folder1/test.asp$ folder1/test.php [R=301]
将不同的asp文件重定向到同一个php文件:
RewriteRule ^test.asp$ test.php [R=301]
RewriteRule ^test2.asp$ test.php [R=301]
RewriteRule ^folder1/test.asp$ test.php [R=301]
RewriteRule ^.*.asp$ test.php [R=301]
不确定是否需要,但。。。将所有asp文件重定向到单个php文件:
RewriteRule ^test.asp$ test.php [R=301]
RewriteRule ^test2.asp$ test.php [R=301]
RewriteRule ^folder1/test.asp$ test.php [R=301]
RewriteRule ^.*.asp$ test.php [R=301]
这将如何处理路径名?例如,如果我们有一个folder1/test.php folder2/test2.php folder3/test1.php等文件夹结构,那么我们需要镜像所有这些吗?有没有办法将任何ASP页面定向到单个PHP并维护querystring?谢谢只要将htaccess文件放在根文件夹中,第二个示例就可以处理所有子文件夹中的所有文件(假设php文件与asp文件位于同一文件夹中!)。第一个示例特定于单个文件,因此需要使用正确的路径编辑最后一行。如果要将多个asp文件重定向到一个php文件,请再次使用第一个示例,并对每个文件重复最后一行。请注意,这两个示例都保留了查询字符串,这是默认行为。谢谢,我刚刚尝试了这个,当我点击一个示例URL时,我得到了一个404。为了确认,mod_rewrite似乎已启用,这是一个新安装,因此此处没有任何内容可干扰。我实际上只有.htaccess文件,根文件夹中有一个示例PHP文件。有什么想法吗?看看这个问题(测试htaccess文件是否正常工作的一个简单方法是在其中键入大量的废话…您应该会得到一个内部服务器错误)