AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 805398
Accepted
GeoffAtkins
GeoffAtkins
Asked: 2016-09-27 08:00:22 +0800 CST2016-09-27 08:00:22 +0800 CST 2016-09-27 08:00:22 +0800 CST

受密码保护时,Wordpress 子目录中的 AStats 显示 404 错误

  • 772

我在 CentOS/WHM/Apache 2.2 服务器上运行(对于客户端)一个 Wordpress 站点,并且在我们安装了 AWStats 的子目录中。在我们通过 htaccess 文件应用密码保护之前,一切正常。如果设置了密码保护,则在尝试查看 AStat 时会导致 404 错误。

经过大量试验和错误,我们发现这取决于 Wordpress htaccess 规则。

使用以下方法调整它们:

# BEGIN WordPress  
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]  
# The following line is the line we added  
RewriteCond %{REQUEST_URI} ^wp-content/stats(.*) 
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

(AWStats 安装在 wp-content 的子文件夹中,因为这导致 Wordpress 出现的问题最少)

效果很好,直到 Wordpress 自动更新删除了所有更改并将此 htaccess 块恢复为默认值。进行此更改并删除 # Begin/End Wordpress 标记会在下一次 Wordpress 更新发生时导致 500 错误,因为它只是添加了这些块中的另一个。

我尝试过的一切似乎都不起作用。

我试过的:

  1. 在 Wordpress 段之前和之后分别添加带有write-to-self规则的 htaccess 重写条件。这会导致 404 问题。

  2. 在 AWSStats 目录中的 htaccess 文件中添加带有write-to-self规则的 htaccess 重写条件。这会导致 404 问题。

  3. 使用指令在 AWSStats 目录中添加一个 htaccess 文件;重写引擎关闭。这会导致 404 问题。

  4. 为 AStats 目录创建子域。这只会导致 AWStats 中的配置错误(我似乎无法修复,因此对于比我更了解 AWStats 配置设置的人可能能够使用此解决方案)。

  5. 删除密码保护。不理想,这个网站已经成为 Wordpress 垃圾评论发送者、推荐垃圾邮件发送者以及所有其他 PITA 想要滥用一个可怜的手无寸铁的 Wordpress 网站的目标。

我想在不授予客户访问 cPanel 的情况下解决此问题,因为他们希望几个人可以访问 AWStats 中的统计数据(是的,我们确实在网站上安装了 Analytics,客户也需要 AWStats )谁不应访问 cPanel 将提供给他们的所有内容。

有没有人有解决这个特定问题的建议或经验?

apache-2.2 .htaccess wordpress awstats htpasswd
  • 1 1 个回答
  • 421 Views

1 个回答

  • Voted
  1. Best Answer
    GeoffAtkins
    2016-10-19T06:23:37+08:002016-10-19T06:23:37+08:00

    我找到的唯一解决方案是手动编辑 Wordpress 的核心文件之一,以便在更新永久链接时包含此行。

    在wp-includes/class-wp-rewrite.php中,从第 1512 行(WP v4.6.1)开始,在类中的mod_rewrite_rules()方法中WP_rewrite:

    $rules = "<IfModule mod_rewrite.c>\n";
    $rules .= "RewriteEngine On\n";
    $rules .= "RewriteBase $home_root\n";
    
    // Prevent -f checks on index.php.
    $rules .= "RewriteRule ^index\.php$ - [L]\n";
    

    正是在这里,我添加了自己的台词。

    $rules .= "RewriteCond %{REQUEST_URI} ^wp-content/stats(.*)\n";
    

    (在完成 .htaccess 文件中的 Wordpress 命令块之前,该方法会继续运行更多行,如果需要自己编辑其中任何一个,只需编辑您需要指令在序列中的位置)

    我将在我为这个客户制作的主题中处理一个自定义函数来接管这个,以处理在 Wordpress 更新期间对这个文件的任何更改。这是快速而肮脏的修复。

    • 0

相关问题

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 上的子域不工作 - 找不到服务器

  • PHP 作为 CGI 还是 Apache 模块?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve