【问题标题】:apache2 silent redirection not working as expectedapache2静默重定向未按预期工作
【发布时间】:2020-10-26 23:18:34
【问题描述】:

我有一个使用 apache2 的网络服务器,我想静默地重定向一些页面。 因此,如果用户尝试访问“http://website.com/test.php”,则会使用“http://website.com/fool.php”的页面。我需要为几个页面这样做,而不仅仅是 test.php。

虽然我可以为此目的使用 mod_rewrite 模块,但我无法让它工作。 我尝试添加 apache2.conf,所以我现在至少可以有一个重定向(不是静默):

RewriteEngine on
RewriteRule "^/test.php$" "/fool.php"

<Directory "/var/www">
    RewriteEngine on
    RewriteBase "/var/www"

    RewriteRule "^/test.php$" "/fool.php"
</Directory>

这导致 test.php 根本没有被重定向(它仍然可以访问),而且它破坏了我的自定义 404 和 403 页面,并出现错误“禁止访问
您没有访问权限此资源。
此外,在尝试使用 ErrorDocument 处理请求时遇到 403 Forbidden 错误。”。

当我重新启动它时,Apache2 不会抱怨语法。

在启用站点的配置中设置它会导致相同的结果。

注意,目的不是阻止直接访问test.php,请求必须产生200成功码。

可能有一些我不明白的地方,因为在网上搜索,似乎是实现这一点的方法。

【问题讨论】:

    标签: mod-rewrite apache2


    【解决方案1】:

    您可以尝试另一种方法:使用 .htaccess 文件。 (把文件放在你网站的根目录下)

    例如:

    RewriteEngine on
    RewriteRule ^/test.php$ /fool.php  [L]
    

    【讨论】:

    • 我仍然可以访问 test.php,但这不会破坏我的自定义错误页面。也许某些东西使整个功能无法正常工作?我检查了它已启用。
    猜你喜欢
    • 1970-01-01
    • 2015-03-15
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多