我有一个 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 没有任何作用
我已经对此进行了研究,但似乎没有一个解决方案对我有用,这让我相信它与成为符号链接有关。