无法将旧的PHP URL重定向到新的ASP页面

无法将旧的PHP URL重定向到新的ASP页面,php,redirect,asp-classic,Php,Redirect,Asp Classic,我不是ASP程序员。当这个系统建立在PHP上时,人们仍然使用链接 旧url:www.domain.com/shop/more.php 新url:www.domain.com/shop/more.asp 它现在运行在没有安装PHP的Windows服务器上。如果我创建了旧的PHP文件,那么访问时会要求用户下载.PHP文件 我的研究让我了解到,我可以通过编辑web.config文件(在页面的根目录或文件夹中)来解决这个问题,但我所有的更改要么导致错误,要么什么也没做 我也考虑过将默认的404页面重定向

我不是ASP程序员。当这个系统建立在PHP上时,人们仍然使用链接

旧url:www.domain.com/shop/more.php

新url:www.domain.com/shop/more.asp

它现在运行在没有安装PHP的Windows服务器上。如果我创建了旧的PHP文件,那么访问时会要求用户下载.PHP文件

我的研究让我了解到,我可以通过编辑web.config文件(在页面的根目录或文件夹中)来解决这个问题,但我所有的更改要么导致错误,要么什么也没做

我也考虑过将默认的404页面重定向到正确的页面,但是我的尝试发现了相同的结果


有人有什么见解吗?有没有办法找出网站正在运行的ASP版本?

如果PHP不工作,您应该能够使用javascript重定向:

<script type="text/javascript">
   window.location = "more.asp";
</script>

window.location=“more.asp”;

在这种情况下,您应该在IIS服务器上安装php=>
据我所知,您不能告诉IIS以其他方式呈现php文件。

您不能使用web.config,即.htaccess的MS equalent吗?

为此使用web.config:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true" />
        <rewrite>
            <rules>
                <rule name="CanonicalHostNameRule" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^www\.example\.com/something.php" negate="true" />
                    </conditions>
                    <action type="Redirect" url="http://www.example.com/something.aspx" />
                </rule>
            </rules>
        </rewrite>
  </system.webServer>
</configuration>


再次祝你好运

只是想澄清一下:当人们访问
www.domain.com/shop/more.php
时,您希望他们被硬重定向到
www.domain.com/shop/more.asp
?我这样问是因为我不知道你是想完全切断
more.php
,还是想对这个贬值的网页进行特殊处理。如果您想要硬重定向,那么尝试重新创建旧的php页面是没有用的。我想我不知道你想如何发送请求。是的。我希望访问
www.domain.com/shop/more.php
的人自动重定向到您不理解的
www.domain.com/shop/more.asp
。PHP未在服务器上运行。如果用户转到.PHP页面,则要求他们下载PHP文件,因为服务器不知道如何打开该文件。放置javascript重定向将不会呈现。解决方案必须更加全球化。类似于路由系统。是否可以在不重新启动apache或访问服务器设置的情况下安装它?不,服务器无法识别文件扩展名,因此它不会对其进行解析,而是将其作为可下载文件发送给用户。我在考虑也许使用isapi,但你必须再次安装软件。
<add name="en_index"
               redirect="Domain"
               ignoreCase="true" rewriteUrlParameter="IncludeQueryStringForRewrite"
               virtualUrl="http://mysitename/en/(.*).php"
               redirectMode="Permanent"
               destinationUrl="http://mysitename/en/$1.aspx" />