.htaccess 阻止本地服务器上的外部访问,某些 URL 除外

Was*_*sim 4 apache .htaccess

我目前.htaccess在 MAMP 服务器上设置了本地,以阻止来自本地系统外部的所有传入流量;

<FilesMatch ".*">
Order deny,allow
Deny from all
Allow from 127.0.0.1
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)

这工作正常,但我随后使用像 PayPal 这样的 API,这些 API 需要访问您的站点以获取 IPN。是否可以对网站的其余部分保持限制,并只允许外部访问特定的 url,例如https://example.com/paypal_ipn

我知道我可以在使用 IPN 时关闭限制,但这不是我想要的。非常感谢。

anu*_*ava 5

您可以mod_rewrite在根 .htaccess 中使用基于规则的规则:

RewriteEngine On

RewriteCond %{THE_REQUEST} !/paypal_ipn [NC]
RewriteCond %{REMOTE_ADDR} !^127\.0\.0\.1
RewriteRule ^ - [F]
Run Code Online (Sandbox Code Playgroud)

这将阻止所有不属于以下情况的请求:

  1. 源自本地主机 ( 127.0.0.1)
  2. 为了 /paypal_ipn

  • 啊,我现在明白了。为我工作。谢谢你的帮助。不知道为什么有人会低估我的问题。 (2认同)
  • 问题不值得投反对票,我已经投了赞成票以抵消它。我很高兴它对你有用。 (2认同)