我需要.htacess文件中的基本重定向,从目录URL到文件:
RewriteRule ^(.*)/mydirectory/(.*)$ myfile.php?q=$2
它不起作用。问题是我不能让它工作,除非我这样做:
RewriteRule (.*)mydirectory(.*)$ myfile.php?q=$2
在这种情况下,捕获的字符串($ 2)是“mydirectory”(?!),当然规则将适用于包含“mydirectory”作为子字符串的任何URL,即使它不在斜杠之间,这也不好
测试网址为:
http://localhost/base/mydirectory/some-other-string
我的期望是:
http://localhost/base/myfile.php?q=some-other-string"
我得到的第一条规则是什么(规则不适用/不工作),以及“myfile.php?q = base / mydirectory”分别带有第二条规则。
如果我使用RewriteCond,也会发生同样的情况:只要我添加该死的正斜杠,该规则就不再适用了。我甚至逃过了正斜线,虽然没有必要,但无济于事。
我不是mod_rewrite专家,但我并不陌生。 IMO,第一条规则应该有效,但事实并非如此。我可能正在做一些可怕的错误,但我太接近了。
请看一下,这让我疯了。
非常感谢。
答案 0 :(得分:0)
斜杠在您需要转义它们的正则表达式中具有特殊含义:
RewriteRule ^(.*)\/mydirectory\/(.*)$ myfile.php?q=$2