【发布时间】:2014-01-28 18:54:44
【问题描述】:
我有一堆需要静态 URL 路径的页面,例如:
foo/bar/fooey/qwertyuiop.htm
但是,这些页面不存在。除了变量略有不同之外,它们都相同。
所以我创建了/foo/bar/details.php,它接受参数“id”和“type”。
任何想法如何制定一个重写规则,将 /foo 中的所有 .htms 及其子目录重定向到 details.php,如下所示:
/foo/bar/fooey/abc123.htm --> /foo/bar/details.php?id=abc123
/foo/bar/xyzzy/hellothere.htm --> /foo/bar/details.php?id=hellothere
和
/foo/bar/applepie/check_pie_status.htm?type=peach
将被重写为
/foo/bar/details.php?id=check_pie_status&type=peach
换句话说,任何请求的 .htm 都将被重写为该 PHP 文件,而客户端看不到它。
【问题讨论】:
-
我有最奇怪的代码问题...
-
@MarcB 这是不同的,因为(并且仅在)目录(和子目录)/foo/bar 中的所有 .htms 都被重写,您链接的页面与传递目录有关每个子目录的名称到一个新的 URL 参数。
-
我同意这个问题与链接的问题不同。
-
@AustinBurk:您不必担心单个重复投票。它需要 5 票才能将其标记为重复。您的问题不是重复的,所以那里不会有 5 票。
标签: php regex .htaccess mod-rewrite rewrite