我正在尝试编写一个简单的mod_rewrite规则,但我不清楚为什么它不起作用。
我只是想将http://example.com/to/abc
重写为http://example.com/to/index.py?to=abc
。
目前,我的重写规则是:
RewriteEngine On
RewriteRule ^/?to/(.*)$ /to/index.py?to=$1
根据我的知识,应该匹配任何类似于/to/whatever
的网址,无论是否包含前导/
。
谁能告诉我这里缺少什么?
答案 0 :(得分:0)
对于初学者来说,你没有提到过什么方式,确切地说,它“不起作用”。如果我不得不猜测,我会说它可能是循环的,你需要这样做:
RewriteEngine On
RewriteCond %{REQUEST_URI} !index.py
RewriteRule ^/?to/(.*)$ /to/index.py?to=$1 [PT]
那说“如果已经重写,就不要重写它。”
那里的[PT]也说“将此目标视为URI,而不是文件路径。
然而,为了确定,你需要告诉我们发生了什么,以及它与你想要发生的事情有什么不同。错误日志条目会很有帮助。重写日志条目会更有帮助。