Apache2:URL 重写不起作用

Apache2:URL 重写不起作用

我无法让 URL 重写正常工作。我尝试了所有我能想到的方法。我检查了所有可能将 AllowOverride 设置为 None 的地方,并将其更改为 All。mod_rewrite 本身已启用,我已多次重启 Apache。我的 vhost 如下所示

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName www.abc.ac.uk
    ServerAlias www.abc.ac.uk
    DocumentRoot /var/www/testRewrite

    RewriteEngine ON
    RewriteRule ^/test /TestMe.html

    <Directory /var/www/testRewrite>
            Options Indexes FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from all
    </Directory>
   ErrorLog ${APACHE_LOG_DIR}/error.log
    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel debug
    RewriteLogLevel 8
    RewriteLog /var/log/rewrite.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
  </VirtualHost>

请求未转发到 TestMe.html。rewrite.log 为空。我做错了什么,如何调试?

答案1

您是否尝试过将重写规则放入Directory部分内VirtualHost

您也可以尝试指定重写库

答案2

这是在 .htaccess 文件中吗?如果是,则 RewriteRule 中不应包含首字母/。这个已经困扰我好几次了。

如果不是,调试 mod_rewrite 的第一步是打开日志记录。具体如何操作取决于您运行的是 apache 2.4 还是较旧的版本。

您可能还会发现一些帮助这是常见的 mod_rewrite 问题列表

相关内容