post 403禁止,wordhost网站在justhost

时间:2015-12-03 18:13:40

标签: php mysql wordpress apache .htaccess

我在Justhost托管的Wordpress网站上有一个日记应用程序,几周前运行良好,但现在它不允许我添加日记条目。在keyup上,它应该动态地将我在textarea中写入的内容发送到mysql数据库中。我知道我的数据库连接很好,因为textarea确实显示了我之前编写的所有内容。我试过禁用所有的插件,这没有帮助,所以我怀疑这是由Wordpress或我的托管服务提供商引起的。我已经尝试过.htaccess的各种调整建议,但每次在textarea中键入一个键时,我的控制台仍会出现以下错误:

错误:POST http://myfullname.com/wp-content/themes/myportfolio/updatejournal.php 403(禁止)

以下是文件:

页面journal.php

<?php 
    session_start();
    include("connection.php");
    if (!$_SESSION['id']) exit( wp_safe_redirect( home_url() . '/privatejournal' ) );
    $query="SELECT journal FROM users WHERE id='".$_SESSION['id']."' LIMIT 1";
    $result = mysqli_query($link, $query);
    $row = mysqli_fetch_array($result);
    $journal = $row['journal'];
?>

<!DOCTYPE html>
  <head>
  </head>

  <body data-spy="scroll" data-target=".navbar-collapse">

    <div class="container contentContainer" id="topContainer">
        <div class="row">
            <div class="col-md-6 col-md-offset-3" id="topRow">
                <textarea class="form-control"><?php echo $journal; ?></textarea>
            </div>
        </div>
    </div>


    <script>
        $(".contentContainer").css("min-height", $(window).height());
        $("textarea").css("height", $(window).height()-110);

        $("textarea").keyup(function() {
            $.post("<?php bloginfo('template_url'); ?>/updatejournal.php", {journal:$("textarea").val()} );
        });
    </script>
  </body>
</html>

updatejournal.php

<?php
    session_start();

    include("connection.php");

    $query = "UPDATE users SET journal='".mysqli_real_escape_string($link, $_POST['journal'])."'WHERE id='".$_SESSION['id']."' LIMIT 1";

    mysqli_query($link, $query);

?>

我在这个问题上发现的各种帖子都说这可能是由mod_security引起的,但是他们建议的解决方法都没有帮助。这是我的.htaccess文件:

# Use PHP5.4 as default
AddHandler application/x-httpd-php54 .php

# Changed PHP handler from application/x-httpd-php54 to application/x-httpd-phpbeta on Mon Nov 23 12:39:39 MST 2015.

# For security reasons, Option followsymlinks cannot be overridden.
#Options +FollowSymLinks
Options +SymLinksIfOwnerMatch
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

RewriteCond %{REQUEST_URI} ^/(wordpress|folder1|folder2)/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]
# Fix 403 errors on existing directories; WordPress overrides.
RewriteCond %{REQUEST_URI} ^/(wordpress)/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

<IfModule mod_security.c>
SecFilterEngine Off
SecFilterScanPOST Off
</IfModule>

1 个答案:

答案 0 :(得分:0)

位于wp-content文件夹中的.htaccess文件已损坏。我进入文本编辑器并清空了文件。 Wordpress最终自动重写了内容。现在一切都很好。