我安装了WordPress,其中包含一个包含许多XML文件的目录。直到今天早上 - 这些文件都可以通过浏览器访问(我可以直接浏览它们)。但现在 - 尝试直接从浏览器调用它们会返回404错误。
我很困惑,因为什么都不应该改变。我认为这很可能是一个.htaccess问题?这是我的htaccess:
<Files xmlrpc.php>
<IfModule !mod_authz_core.c>
order deny,allow
deny from all
allow from xx.xx.xx.xx
allow from xx.xx.xx.xx
</IfModule>
<IfModule mod_authz_core.c>
Require ip xx.xx.xx.xx xx.xx.xx.xx
</IfModule>
</Files>
# END GOTMLS Patch to Block XMLRPC Access
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
(注意 - 隐藏相关的IP地址)
我错过了什么?
答案 0 :(得分:1)
如果显示404错误,则htaccess文件错误。 只需将htaccess代码从您的代码更改为我的代码。
如果您的文件位于www.xyz.com/foldername/等文件夹中 因此使用以下代码。
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /foldername/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /foldername/index.php [L]
</IfModule>
# END WordPress
如果您的文件直接在www.xyz.com等服务器上 因此使用以下代码
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
主htaccess文件的代码,它位于主目录中,其中wp-config文件可用,另一个htaccess位于wp-content文件夹中。 在wp-cotent文件夹中创建另一个.htaccess文件并编写以下代码。
#<FilesMatch "\.(?i:php)$">
# <IfModule !mod_authz_core.c>
# Order allow,deny
# Deny from all
# </IfModule>
# <IfModule mod_authz_core.c>
# Require all denied
# </IfModule>
#</FilesMatch>
在此之后检查你的wp-admin,它不会显示404错误。