【问题标题】:.htaccess file broke my WP site.htaccess 文件破坏了我的 WP 网站
【发布时间】:2025-12-18 11:15:01
【问题描述】:

我添加的只是服务器授权。我是在我在那里找到的现有 WordPress .htaccess 内容之上完成的。

授权有效,太好了,顺便说一句。但现在我收到“500 内部服务器”错误。我是 WP 新手,我假设这个 .htaccess 文件是安装的标准配置。也许只是出于某种原因我看不到的明显东西?

Order deny,allow
Deny from all
AuthType Basic
AuthUserFile .htpasswd
AuthName "PROTECTED ZONE"
require valid-user
Satisfy Any
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /devip/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /devip/index.php [L]
</IfModule>

【问题讨论】:

    标签: linux wordpress .htaccess


    【解决方案1】:

    你能查看你的 apache error.log 吗?内部服务器错误应该在那里记录。可能是 htaccess 文件中的一些小错误。

    【讨论】:

    • 呃。我希望。如果您能告诉我如何通过 Godaddy 通过共享主机查看日志,我会全力以赴。
    • Eeeh 讨厌共享主机。几年前带了一个 vps 用于一大堆网站,再也回不去了
    【解决方案2】:

    文件.htpasswd 存在吗?它是相对于ServerRoot 进行搜索的。

    Apache manual:

    File-path 是用户文件的路径。如果它不是绝对的(即,如果它不以斜杠开头),则将其视为相对于ServerRoot

    我的猜测是它不在您服务器上的ServerRoot 目录中。如果需要,请检查并更正路径。

    【讨论】:

    • 它确实存在,并且授权,正如我所提到的,效果很好。有一次,我登录了,但是,我得到了服务器错误。甚至无法提供 phpinfo.php 页面!
    • @Lynn,但它是否在服务器的根目录中(ServerRoot,而不是 DocumentRoot)?因为如果不是这样,看起来好像授权有效,但实际上,即使询问了名称和密码,它也没有被检查并且服务器返回 500(因为没有什么可检查的)。跨度>
    • @Lynn,在另一个答案下,您已经注意到您在共享主机上。在那种情况下,我很确定您的密码文件 notserver 根目录中。
    • 这是因为我把它放到了 root/target_dir 目录中,在那里我安装了 WP 和其他一些我正在玩的东西(虽然在这个 htaccess 文件之前没有服务器端的东西)。当我请求该目录的 index.php 页面时,正如预期的那样,我的 ,htaccess 授权屏幕会弹出,我输入我的用户/密码(.htpasswd 存储在该级别)并将我登录。但是 .php 文件是不在该目录中提供服务。他们正在上面的目录中提供服务....
    • 我仍然认为您正在混淆网络服务器的 server 根目录(您可能在共享主机上没有有权访问)和您网站的 document 根目录。查看phpinfo()(如果需要使其正常工作,请暂时删除htaccess)并搜索“Server Root”和“DOCUMENT_ROOT”以查看差异。如果您将 .htpasswd 放在网站演示文稿的根目录中,则取“Server Root”的值并在前面加上 AuthUserFile 指令。
    【解决方案3】:

    500 服务器错误有时与 .htaccess 文件的字符编码有关。当我第一次开始使用 WordPress 和 .htaccess 文件时,我犯了这个错误。

    您使用什么类型的文本编辑器来编辑 .htaccess?对于 Windows PC,您应该使用记事本并另存为纯文本。在 Mac 上,使用 TextEdit 并另存为纯文本。或者使用 GoDaddys 的文件管理器打开并保存文件。

    【讨论】: