【发布时间】:2015-06-18 00:15:56
【问题描述】:
我有以下网址:
www.domain.com/subfolder/item.php?test=1
www.domain.com/subfolder/item2.php
我想重写 URL 以仅显示子文件夹:
www.domain.com/subfolder/
这是我目前所拥有的(在文档根目录中?):
RewriteRule ^(.*)/([^.]+)/$ /$1/$2.php?rw=1 [QSA,L]
RewriteCond %{QUERY_STRING} !^rw=1
RewriteRule ^(.*)/([^.]+)\.php$ /$1/$2/ [R=301,L]
结果:
www.domain.com/subfolder/item/
www.domain.com/subfolder/item2/
是否有一个“通用规则”产生一个只显示子文件夹的 URL,无论是否有 GET 参数。我有很多页面,不想处理所有现有案例。提前致谢!
【问题讨论】:
-
您在浏览器中输入的示例 1 的 url 是什么?您的模式匹配这种格式的 url=>example.com/foo/bar/
-
你是绝对正确的。我没有意识到示例 1 也适用于此规则。您是否知道如何在我/您的示例中隐藏子文件夹,以便 URL 显示 example.com/foo/ 而不是 example.com/foo/bar/。
-
RewriteRule ^(.*)$ /subfolder/item.php?test=$1 [L] 这将映射 example.com/20 到 example.com/subfolder/ item.php?test=20
-
我不明白你为什么使用QUERY_STRING..你想用这个实现什么?
标签: regex apache mod-rewrite webserver