使用 htaccess 阻止访问 xmlrpc 符号链接文件

问题描述 投票:0回答:0

我有一个 WordPress 网站,我正在使用 Nginx 作为反向代理的 Apache 服务器上的符号链接进行版本控制。

目录结构如下:

example.com
  wp-admin -> symbolic to different directory
  wp-content
  wp-includes -> symbolic to different directory
  .htaccess
  wp-config.php
  ...
  wp-load.php -> symbolic to different directory
  xmlrpc.php -> symbolic to different directory
  ...
  ...

这是我的 htaccess 文件的内容:

# BEGIN Feed redirect
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^(.*/)?feed(/rss|/rss2|/atom|/rdf)?/?$ /$1 [R=301,NC,L]
RewriteCond %{QUERY_STRING} (?|&)feed=
RewriteRule (.*) $1/? [R=301,NC,L]
</IfModule>
# END Feed redirect


# BEGIN WordPress
# The directives (lines) between "BEGIN WordPress" and "END WordPress" are
# dynamically generated, and should only be modified via WordPress filters.
# Any changes to the directives between these markers will be overwritten.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

# BEGIN block author scans

RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} (author=\d+) [NC]
RewriteRule .* - [F]

# END block author scans

现在用户可以通过访问 www.example.com/xmlrpc.php 直接访问 xmlrpc.php,他们无法使用 wp-load.php 或其他符号链接来访问。

我想这样做,以便我可以通过限制读取访问或创建重定向来阻止用户直接访问 xmlrpc.php。

我不想移动文件或更改目录结构。 我不想编辑 xmlrpc.php 的内容。 我不想将另一个 htaccess 文件添加到 xmlrpc.php 所属的目录中。

我尝试在 WordPress 块中添加

RewriteCond %{REQUEST_FILENAME} !-l
但没有成功。 我还尝试添加重定向:
Redirect 301 /xmlrpc.php https//www.example.com/
.

我也试过以下方法:

 # Block WordPress xmlrpc.php requests
<Files xmlrpc.php>
order deny,allow
deny from all
</Files>

我已经成功地为其他网址创建了重定向,例如

/about/
但对 xmlrpc.php 没有任何作用

我已经对此进行了研究,但似乎没有一个解决方案对我有用,这让我相信它与成为符号链接有关。

apache .htaccess
© www.soinside.com 2019 - 2024. All rights reserved.