1

我将重写规则放在目录标签中。在我问这个问题之前,我已经阅读了 Apache 文档的写法:

资源的网络路径

重写规则 ^/foo$ /bar

如果 DocumentRoot 设置为 /usr/local/apache2/htdocs,那么该指令会将http://example.com/foo的请求映射到路径 /usr/local/apache2/htdocs/bar。

所以我照着写的做了。
在下面的示例中,我希望: /aaaaa 重定向到 /index.php?action=aaaaa

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName test.com
    DocumentRoot /var/www/project/released/test

    <Directory /var/www/project/released/test>
            AllowOverride none
            Options Indexes FollowSymLinks MultiViews
            Order allow,deny
            allow from all

            RewriteEngine on                
            RewriteRule ^/([a-z0-9-_]+)$     /index.php?action=$1 [NC,L]
    </Directory>
</VirtualHost>

在 apache 日志中写入:

[Mon May 27 23:14:11 2013] [error] File does not exist: /var/www/project/released/test/aaaaa

您能否提供帮助和建议,为什么这可能不起作用以及为什么日志显示完全不同的行为(根据文档,这条路径显然不存在,但它永远不应该存在!)?我安装并启用了 mod_rewrite。

4

0 回答 0