我的.htaccess中有重定向的问题非常奇怪。
我设定的规则是:
RewriteRule ^([a-zA-Z0-9\-]*)/$ ?mode=book&permalink=$1
它匹配多个单词短语:
http://www.fernwoodpublishing.ca/About-Canada-Youth-and-Children/
和单词短语:
http://www.fernwoodpublishing.ca/Kaandossiwin/
但是,如果它与那些单字短语匹配,没有任何连字符,则反向引用不会正确传递。所以,上面的例子应该去
?mode=book&permalink=Kaandossiwin
哪个会正常工作,而是转到
?mode=book&permalink=
这只是创造了一大堆错误并打破了一些东西。
我尝试过各种方法来解决这个问题,似乎没有任何帮助。任何对htaccess更有经验的人都知道为什么在这些特定情况下不返回反向引用? (我已经用其他示例对它进行了测试,并且精确地遇到了同样的问题,因此我确信它在所有情况下都匹配,但在匹配包含连字符的情况下仅返回后引用。
非常感谢!
答案 0 :(得分:0)
尝试以下方法。我认为分组是不正确的。
RewriteRule ^([\w-]+)/$ ?mode=book&permalink=$1
我还建议为你的链接添加前缀,因为这种URL格式非常宽松。也就是说它匹配顶级字母数字,下划线或短划线的任何URL。像下面这样的东西更灵活。
RewriteRule ^book/([\w-]+)/?$ book.php?permalink=$1