保存设置后的HTAccess问题

时间:2017-11-10 作者:eklisiarh

我对WordPress有一个非常奇怪的问题。我使用复制插件将网站从一个域转移到另一个域。

一切正常,但当我在设置中更改某些内容并保存它们,然后转到网站或个人页面时,此页面会下载到我的计算机上。

例如,如果我的网站是一个例子。com在我转到该页面后,该文件将下载到我的计算机上,并带有名称示例。com(.com是文件的扩展名)。

如果我删除。htacces文件我可以再次访问主页,但其他永久链接不起作用。

我试着改变。HTACCESS与Wordpress网页上的默认设置一致,在我更改设置并再次保存之前,一切正常。

我尝试通过wp admin/update core重新安装Wordpress。php。重新安装后一切顺利,但问题仍然存在。

保存设置后,我的htaccess保持不变,只有一行:

AddHandler application/x-httpd-php70 .php
在开头添加:

# BEGIN WordPress
AddHandler application/x-httpd-php70 .php
<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
手动删除该行后,所有内容都再次正常工作,直到再次保存设置。仅供参考,我当前的php版本是7.1。我试着在cPanel中将其更改为7.0,但也没用。

有人知道这可能是什么以及如何解决吗?

1 个回复
最合适的回答,由SO网友:eklisiarh 整理而成

好的,我已经解决了这个问题,我正在为其他人遇到这个问题的情况提供答案。

问题出在最初通过Mojo Marketplace自动安装Wordpress时使用的插件上。

插件的名称是耐力PHP Edge,它不在普通插件文件夹中,因此无法停用。此插件用于在保存后在htaccess文件中设置PhP版本。看起来是这样的:

    if ( ! defined( \'WPINC\' ) ) { die; }

define( \'EPE_VERSION\', 0.1 );

if ( ! class_exists( \'Endurance_PHP_Edge\' ) ) {
    class Endurance_PHP_Edge {
        function __construct() {
            $this->hooks();
        }

        function hooks() {
            add_filter( \'mod_rewrite_rules\', array( $this, \'htaccess_contents\' ), 99 );
        }

        function htaccess_contents( $rules ) {
            if ( file_exists( \'/opt/cpanel/ea-php70/root/usr/bin/php-cgi\' ) ) {
                $default_handler = \'application/x-httpd-ea-php70\';
            } else {
                $default_handler = \'application/x-httpd-php70\';
            }

            $handler = get_option( \'epe_php_handler\', $default_handler );
            $handler = \'AddHandler \' . $handler . \' .php\' . "\\n";
            return $handler . $rules;
        }
    }
    $ebc = new Endurance_PHP_Edge;
}
这是在我的。htaccess文件。

我无法理解为什么这一行导致每页都被下载。

解决方法就是删除mu-plugins 可在中找到的文件夹wp-content 文件夹

结束