linux - apache2 重写规则不起作用

标签 linux apache ubuntu apache2 url-rewriting

我正在尝试在 apache2 conf 中编写一些重写规则,但它们不起作用 以下是我在 apache conf 中的虚拟主机 block 。我的操作系统是ubuntu 12.04服务器版

    DocumentRoot /var/www/xyz

    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /var/www/xyz>
            Options Indexes FollowSymLinks MultiViews
            #AllowOverride None
            AllowOverride All
            Order allow,deny
            #Order deny,allow
            allow from all
     </Directory>

我有一些重写规则如下的 .htaccess 文件

ReWriteEngine on
RewriteRule    ^/matchV/(.*) http://host:8080/$1
RewriteRule    ^/other/(.*?)$ /httpdcontent/$1

重写模块已启用 apache。

如果我遗漏了什么,谁能告诉我。

谢谢,

桑迪普

最佳答案

首先,第一个重写规则中似乎缺少美元符号。 然后,我建议在“调试”情况下使用 [L]。这样,当时只需更正一条规则。

如果您需要检查重写的进展情况,您需要查看日志文件/var/log/apache2/error.log 和/var/log/apache2/access.log。他们会告诉您服务器试图处理什么 URL,以及它是如何失败的。从这里,你应该能够看到什么是缺失的,或者什么是“太多”。

据我所知,我认为这与重写基础有关。您的 Web 服务器根目录可能位于/var/www,而虚拟主机的目录是/var/www/xyz。我认为您可以使用类似...的方法修复它

RewriteBase /xyz

无论如何,编辑配置,不要停止检查日志。从那里,您将看到服务器尝试处理的 URL/文件,并且您应该能够更正它使用的路径。

关于linux - apache2 重写规则不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17636126/

相关文章:

ubuntu - Selenium 无法启动 - Ubuntu 14

linux - 在 LINUX 中终止本地 TCP 连接

linux - 在 Linux 上重命名多个文件同时保持相同的扩展名

c++ - Boost ASIO socket 消耗文件描述符

java - 如何设置scheme tomcat?

ubuntu - nginx怎么加到UFW,nginx没有出现在UFW lst中?

c++ - 如何设置和清除串口的RTS线。 C++ POSIX

android - 找不到构建工具修订版 23.0.1

php - 在 Docker 上加载自定义 php.ini(镜像 : php:8. 1.2-apache)

php - HTML 文件正在下载而不是在 apache 服务器 (AMPPS) 上打开