0

サーバーまたはステージング サーバーで奇妙な動作が発生しました。実際の問題がどこにあるかを確認する必要があります。以下は、人気のある Wordpress CMS のよく知られたコードです。

# 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]
</IfModule>

# END WordPress

AddHandler application/x-httpd-php53 .php

元のコードとの唯一の違いは、ステージング ホスティング プロバイダーで必要なファイルの末尾に「AddHandler」が追加されていることです。

本当の問題は、開発サーバー (内部の Ubuntu ベースの 12.04 標準サーバー) 上の次のダミー URL でファイルにアクセスでき、実稼働環境またはステージング環境 (どちらも同じサーバー) ではアクセスできないことです。

  1. /wp-content/test.php
  2. /wp-content/themes/test.php
  3. /wp-content/themes/wpactivis/test.php
  4. /wp-content/themes/wpactivis/_/test.php
  5. /wp-content/themes/wpactivis/_/ajax/test.php

現在、あるサーバー セットでは、これらの URL は 404 を返し、Wordpress は自動的に起動するように見えますが、開発サーバーでは 200 OK で、ファイル コンテンツが返されます。これは、従来の「Hello world」テストです...

htaccess の第一人者は、ステージング サーバーや開発サーバーのように、貼り付けられたコードの実際の動作を教えてもらえますか。

私はそれが開発サーバーのようであるべきだと考える傾向があります.ファイルアクセスまたはディレクトリアクセスは許可されるべきであり、次の理由により404を返さないでください:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

条件!

ありがとうございました

注: wordpress のコーディング方法が悪いとか、そんなことは聞きたくないとは言わないでください。私たちは完全に安全なセットアップを行っており、プラグインやテーマ ディレクトリに直接ファイルにアクセスできるという事実は関係ありません。たくさんの同様の質問がウェブに投稿されていますが、答えはありません。あなたがそうするべきだと言っている人だけです. 私がここで試みているのは、なぜそれが一方のサーバーで行われ、もう一方のサーバーでは行われていないのかについての答えを得ることです。

4

1 に答える 1

1

気にしないでください。ホストが問題を発見しましたが、他の人が実際に信頼できるように私が答えます。

私たちのホストは、グループ書き込み可能なファイルの提供を防ぐモジュールを使用して、CPanel ベースのインストールを使用します。

サイトを開発からステージングに移行するために、「BackupBuddy」ソリューションを選択しました。これは、小さなワードプレス サイトの展開に非常に適したソリューションです... 問題はありますか? 775 以下のファイルを抽出します。これにより、Wordpress インストールの ajax ファイルのサービスに問題が発生しました。

これを修正するには、サーバーに SSH アクセスできる場合は、以下を使用してディレクトリのアクセス許可を 755 に、ファイルのアクセス許可を 644 に再帰的に変更します。

find . -type f -print -exec chmod 644 {} \;
find . -type d -print -exec chmod 755 {} \;

頑張ってください、これが他の人に役立つことを願っています。

于 2012-10-19T14:12:46.427 に答える