Apache重写 - php脚本的虚拟目录

时间:2014-10-01 01:57:06

标签: apache .htaccess mod-rewrite url-rewriting

根据对此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

重写规则似乎与网址匹配似乎并不重要。我错过了什么?

1 个答案:

答案 0 :(得分:0)

好的,我通过切换到nginx(lol)并实现这个重写规则解决了这个问题:

location /st {
    rewrite ^/st/(.*)$ /app.php/st/$1 last;
}

切换到nginx实际上与重写规则没什么关系,更多的是与远离apache 2.2(centos的默认上游版本)有关,但是对于nginx,重写规则比apache更直接。 (IMO)。