【发布时间】: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