Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将带有querystring值的404路由到PHP处理程序_Php_Apache_Asp Classic - Fatal编程技术网

将带有querystring值的404路由到PHP处理程序

将带有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中正确路由?还有其他简单的路线吗

我接管了一个在ASP中构建的站点,它为一系列第三方应用程序提供了一个端点。我们正在迁移到一个基于PHP的站点,但我们必须考虑这些端点

基本上,在唯一的站点上,它可能会发出类似test.asp?id=312131312&qs=42343434afsdf434这样的请求,我们希望将此路由到我们自己的test.php?id=312312312&qs=423434AFSDF434,然后我们可以完成其余的工作。有没有一种方法可以设置404重定向来捕获此消息并在Apache中正确路由?还有其他简单的路线吗

提前谢谢。

我怀疑您是否想要404(未找到)?您可能需要301(永久重定向)

首先确保启用了
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文件是否正常工作的一个简单方法是在其中键入大量的废话…您应该会得到一个内部服务器错误)