如何编写一个路由来捕获*.php ?

本文关键字:php 路由 一个 何编写 | 更新日期: 2023-09-27 18:06:35

我想创建一个捕获所有"php"文件的路由…我试过:

routes.MapRoute("php", "{*x}.php", new { controller = ... });

但是我得到了下面的异常:

A path segment that contains more than one section, such as a literal section
or a parameter, cannot contain a catch-all parameter.
Parameter: routeUrl

它必须捕获:

/p1/p2/p3.php
/p1/p2.php
/p1.php

我想写一个可以捕获N级别的单一规则…我该怎么做呢?

如何编写一个路由来捕获*.php ?

您可以使用约束:

routes.MapRoute("php", "{*allphp}", new { ... }, new { allphp = @".*'.php" });

如果你仍然有默认路由,这个必须放在前面。

我的答案是基于:使路由忽略对文件扩展名

的请求