【问题标题】:Apache2 log not displayed for rewrite module and no rewriteApache2 日志不显示重写模块并且没有重写
【发布时间】:2015-03-01 19:46:19
【问题描述】:

我在 OVH 中有 VPS,我使用 j2ee 开发了网站,我使用 mod_jk 将 apache 与 tomcat 相关联。

当我输入 url http://ip_of_vps/myapp 时,我进入网站。

到现在还好

现在我添加重写以仅使用没有上下文的 ip_of_vps (myapp) 访问网站,为此我在 apache2.config 中使用重写,如下所示:

<virtualhost *:80>
RewriteEngine On
LogLevel alert rewrite:trace6
RewriteRule ^/$  http://ip_of_vps/myapp/ [P,L]
</virtualhost>

我将目录中的 All AllowOverride 从 none 更改为 All

当我尝试访问 http://ip_of_vps 时,我有 apache2 主页。

我忘记了什么?

我使用的是 ubuntu 14.04 服务器,apache2,tomcat7。

【问题讨论】:

    标签: mod-rewrite apache2


    【解决方案1】:

    在我的脑海中,通常你会写

    <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
        ReWriteRule your rule
    </IfModule>
    

    那么,mod_rewrite 真的加载了吗? 你需要你的 RewriteBase 是 /myapp/ 吗?

    我的建议是在您的 html 根目录中放置一个 .htaccess 有这样的规则

    重写规则 ^myapp/(.*)$ $1 [L]

    这样你就根本不需要 mod_proxy

    希望对你有帮助

    【讨论】:

    • 是的,重写模块已启用,我想在没有 /myapp 的情况下访问我的网站
    • 当我添加 RewriteBase / 时,我有这个错误:RewriteBase: only valid in per-directory config files
    • 这里不需要 L 标志,它由需要 mod_proxy 的 P 标志暗示。 RewriteRule ^myapp/(.*)$ $1 可能是一个更好的主意
    • 是的 mybad RewriteBase 用于 .htaccess 文件 - 如果您在 apache2.config 中配置 mod_rewrite,我认为它将默认为 /。将使用建议的 .htaccess 编辑我的 OP
    猜你喜欢
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    • 2016-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多