gpt4 book ai didi

apache - mod_rewrite : allow redirect but prevent direct access

转载 作者:行者123 更新时间:2023-12-02 09:56:02 24 4
gpt4 key购买 nike

我目前正在使用 mod_rewrite 进行内部重定向

RewriteCond  %{REQUEST_URI}  ^/pattern$
RewriteRUle .* file.php

但是,我想通过将对该文件的请求重定向到未找到的页面 URL 来阻止直接访问 file.php

RewriteCond %{REQUEST_URI} /file.php
RewriteRule .* page-not-found.php

问题是,当我执行第一次重定向时,第二条规则也适用,因此破坏了我的第一次内部重定向。

[问]有没有办法允许第一次重定向但阻止直接访问重定向的文件?

最佳答案

使用 ENV:REDIRECT_STATUS 变量(请参阅 mromainecontribution"Hidden features of mod_rewrite" community wiki:

RewriteCond  %{REQUEST_URI}  ^/pattern$
RewriteRule .* file.php

# Redirect direct access to file.php
RewriteCond %{REQUEST_URI} /file.php
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule .* page-not-found.php

测试用例:

每个 HTTP 响应都是 HTTP 200。

关于apache - mod_rewrite : allow redirect but prevent direct access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5769459/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com