嗨,我在.htaccess文件中有一个规则列表但是如果我需要添加一个新页面,那么我需要再次编辑这个文件并添加另一个rulles。他是几个
RewriteRule ^admin/(.*).html$ index.php?x=admin&y=$1
RewriteRule ^admin/project/(.*).html$ index.php?x=work&p=project&$1
RewriteRule ^work/(.*).html$ index.php?x=work&p=$1
我是否有某种方法可以让1条规则适用于所有人。是否有办法进行循环,以便对于url中的每个额外的/ something / extra它将在重定向中添加它?
感谢。
答案 0 :(得分:2)
简单的答案是,不可能创建一个可以处理动态数量变量的RewriteRule。您唯一真正的选择是捕获基础知识,然后将所有内容捕获为单个块并使用PHP进行解析。有可能改进你现在拥有的东西,它取决于你的第二个规则中的x =工作是否是拼写错误,以及你的查询字符串变量的一致性是多少......
RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)\.html$ index.php?x=$1&y=$2
这是您在基于MVC的系统中可能会看到的那种模式。但它们通常具有路由系统,允许您指定要匹配的模式(这与必须以多种方式添加RewriteRules相同)。