我对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,但也没用。
有人知道这可能是什么以及如何解决吗?
最合适的回答,由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 文件夹