【问题标题】:How to 301 redirect all .asp pages to .php pages on IIS with web.config如何使用 web.config 将所有 .asp 页面 301 重定向到 IIS 上的 .php 页面
【发布时间】:2019-09-08 17:56:57
【问题描述】:

作为一个 php 程序员,我通常使用 .htaccess 来重定向页面,但是由于继承了以前用 asp 制作的项目,我需要将页面重定向到 php 中的同名页面。对于php中不存在的页面,index.php应该是重定向页面。

您能帮我提供一些建议和资源吗?我只能找到单页到单页重定向。

非常感谢

【问题讨论】:

  • 谢谢。 IIS 是远程的,我无法在主机上安装任何东西。还是我可以在普通的 Windows 机器上下载,执行它,然后将生成的文件上传到远程服务器上?
  • 否,但假定远程 IIS 主机将安装它,因此您需要做的就是在您的站点 web.config 文件中配置重写规则。
  • 但这就是我一开始要问的,因为我不喜欢asp。我不知道如何构建 web.config

标签: php iis asp-classic http-status-code-301


【解决方案1】:

首先您必须配置 .Net 处理程序来处理您的经典 ASP 请求 你可以用 runAllManagedModulesForAllRequests="true" 来做这件事 阅读更多 herehere

接下来,您可以使用内置的 URL 重写模块通过 web.config 进行通配符替换或一对一映射

作为备份,您可以使用 Global.asax 的 Application_BeginRequest 事件解析出请求的 URL 并永久重定向到 PHP

希望对你有帮助

【讨论】:

  • 谢谢 ullfindsmit,这超出了我的知识范围。我正在使用带有一些正则表达式行的 web.config 将 url 从 ?q=v&q1=v1 重写为 /v/v1/ 表单,但仍然无法将所有 .asp 页面重定向到 .php 相关页面。我什至很乐意将所有 .asp 页面重定向到 index.php。这是我正在使用的,但没有成功:
  • 这里有两件事在起作用,第一件事是让.net 处理你所有的 ASP 页面,第二件事是重写。要让 ASP.net 处理请求请求,请使用 run for all m a managed requests 设置,接下来是进行实际映射
  • 如何指示服务器“为所有托管请求运行”?
  • 我已在 web.config 中插入了这行代码,但我不明白如何将 .asp 映射为全部重定向到 index.php。你能帮我么?谢谢
  • 这是一个两步过程。第 1 步,让 .net 通过 runAllManagedModulesForAllRequests="true" 处理 .asp 文件请求 第 2 步构建您的重定向规则。做一个简单的测试,根据这里的规则将所有.asp重定向到php >> forums.iis.net/t/1233447.aspx
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-05-25
  • 2014-09-23
  • 2012-12-21
  • 2012-01-02
  • 2012-09-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多