根据对此post的接受回答,我构建了一个非常简单的重写规则,但似乎没有按设计工作。
# /st doesn't exist, it's virtual
example.com/st/sometext
重写
# /app is a symlink to /app.php, and this link works if entered directly
example.com/app/st/sometext
重写规则:
RewriteRule ^st/(.*)$ app/st/$1 [L]
此规则位于重写块的顶部,之后还有其他规则,但由于[L]约束,这些规则不适用。
重写日志文件包含:
(2) init rewrite engine with requested uri /st/sometext
(1) pass through /st/sometext
重写规则似乎与网址匹配似乎并不重要。我错过了什么?
答案 0 :(得分:0)
好的,我通过切换到nginx(lol)并实现这个重写规则解决了这个问题:
location /st {
rewrite ^/st/(.*)$ /app.php/st/$1 last;
}
切换到nginx实际上与重写规则没什么关系,更多的是与远离apache 2.2(centos的默认上游版本)有关,但是对于nginx,重写规则比apache更直接。 (IMO)。