gpt4 book ai didi

php - 如何将上传的 php 文件显示为纯文本而不是在 wordpress 中执行?

转载 作者:可可西里 更新时间:2023-11-01 12:57:20 26 4
gpt4 key购买 nike

在/tmp 中编辑一个 testme.php 文件。

<?php
echo "test";
?>

编辑一个名为test 的新帖子并上传文件/tmp/testme.php ,用url http://home.local/wp/发布?p=4785
enter image description here

我想看testme里面的内容,点击它,在wordpress中弹出新窗口。 enter image description here

继续点击它。测试在网页中显示。

我的期望:
1.在测试帖中点击testme一次即可。
2.将 testme.php 显示为纯文本,

<?php
echo "test";
?>

而不是执行 testme.php 的结果。

test

我根据一些资料进行配置在apache中将php文件显示为纯文本

sudo vim/etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
ServerName www.home.local
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
allow from all
php_flag engine off
AddType text/plain php
</Directory>
</VirtualHost>

重新启动 apache2(在 debian 中构建)。

sudo systemctl restart apache2

要打开帖子 http://home.local/wp/?p=4785,我在网页中得到以下输出:

<?php
/**
* Front to the WordPress application. This file doesn't do anything, but loads
* wp-blog-header.php which does and tells WordPress to load the theme.
*
* @package WordPress
*/

/**
* Tells WordPress to load the WordPress theme and output it.
*
* @var bool
*/
define('WP_USE_THEMES', true);

/** Loads the WordPress Environment and Template */
require( dirname( __FILE__ ) . '/wp-blog-header.php' );

最佳答案

您已经有了正确的代码 — AddType text/plain php ,这将使 Apache 将 PHP 文件(或名称以 .php 结尾的文件)视为纯文本文件。

但假设如下:

  • 您在 /var/www/html 中安装了 WordPress目录。

  • PHP文件默认上传到uploads WordPress 中的文件夹 ( wp-content/uploads )。

如果将目录设置为 /var/www/html/wp-content/uploads如:

<Directory /var/www/html/wp-content/uploads>
AddType text/plain php
</Directory>

您会得到想要的结果 — 只有 uploads 中的 PHP 文件文件夹将被视为纯文本文件,不是 /var/www/html 中的所有 PHP 文件目录。这解释了“打开帖子 http://home.local/wp/?p=4785,我得到以下输出”的问题,其中输出是文件 /var/www/html/index.php 中的代码.我的意思是,你使用了 <Directory /var/www/html> ,这使得 Apache 对待 index.php文件作为纯文本文件,而不是执行文件中的 PHP 代码。

替代方法:使用 .htaccess文件。

特别是如果您无法编辑或无权访问 Apache 的配置 (.conf) 文件。

  1. 创建 .htaccessuploads文件夹,如果它还不存在的话。

  2. 然后添加AddType text/plain php在该文件中。

附加说明

I want to see the content in testme.php, click it, pop up new window

我相信您可以做到或者已经有了代码/解决方案,但是一个简单的方法就是添加 target="_blank"到附件/文件链接.. 或使用 JavaScript,您可以使用 window.open() .

并且您必须采取全面的安全措施,因为允许人们上传 PHP 文件可能会损害您的网站和/或您的网站用户。

关于php - 如何将上传的 php 文件显示为纯文本而不是在 wordpress 中执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52362401/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com