我有这个完美无缺的规则
重写发动机 RewriteRule ^([^ /] +)/([^ /] +)/demo/index.php?category = $ 1& 子类别 = $ 2
这会转换我的链接
?/demo/index.php的类别 = ABC&安培;的子类 = XYZ
到
/演示/ ABC / XYZ
但有时我想输入这样的类别名称
/演示/ ABC /
但不幸的是,这会导致错误找不到页面。是什么导致此错误,我该如何解决?
也可以有人提供RewriteEngine资源/书籍/教程的链接。我无法找到任何有助于像我这样的初学者的东西。谢谢。
答案 0 :(得分:1)
将您的规则更改为:
RewriteRule ^([^/]+)/([^/]*) /demo/index.php?category=$1&subcategory=$2 [L,QSA]
这使得第二个参数可选(在*
中使用+
而不是[^/]*
)
答案 1 :(得分:0)
除非/demo/ABC/
是本地文件系统上存在的目录,否则它将无法找到该页面。您的第一条规则只是将参数填充的链接重写为该pseduo-path,它不会建立虚拟目录或创建可靠的重定向。
RewriteRule
的最佳信息可能会出现在实际Apache docs.