我的网址是这种形式
/sites/site-name/Subpath-2/page-name.page
/sites/site-name/Subpath-3/Subpath-4/index.page
这应该被重写为/sitename/subpath/pagename
(删除扩展.page
名)子路径也可以有多个文件夹,即(/sites/site-name/Subpath-2/..../page-name.page)
如果我们有一个以 index.page 结尾的 url,那么我们必须删除 index.page 例如:
/sites/site-name/...subpath.../index.page
应该是/sites/site-name/...subpath.../
我尝试过以这种方式使用反向引用
ProxyHTMLURLMap "\/sites\/([A-Za-z-0-9]+|-)\/([A-Za-z-0-9]+|-)\/([A-Za-z-0-9]+|-)\.page$" "/$1/$2/$3" R
对于以 index 结尾的网址
ProxyHTMLURLMap "\/sites\/([A-Za-z-0-9]+|-)\/([A-Za-z-0-9]+|-)\/(index)\.page$" "/$1/$2/" R
但是我需要重写 URL,这样子路径可以很多,即它应该适用于任何可以有超过三个子路径的 URL,
它需要为/sites/site-name/Subpath-3/Subpath-4/index.page
/sites/site-name/Subpath-1/Subpath-2/ 工作子路径 3/home.page
把它分开:
((\/([A-Za-z-0-9]+|-))*)
是任意数量的路径组件 - 零个或多个 - 跟随/sites
。每个组件都以/
. 所有路径组件的整个字符串都存储在$1
.([A-Za-z-0-9]+|-)\.page$
,以 . 结尾的文件名.page
。它的结果存储在 中$4
,因为它从表达式中的第 4 个左括号开始。如果您希望在和文件名之间至少需要一个路径组件
/sites
,而不是零个或多个,您可以*
将+
.