サーバーまたはステージング サーバーで奇妙な動作が発生しました。実際の問題がどこにあるかを確認する必要があります。以下は、人気のある 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 でファイルにアクセスでき、実稼働環境またはステージング環境 (どちらも同じサーバー) ではアクセスできないことです。
- /wp-content/test.php
- /wp-content/themes/test.php
- /wp-content/themes/wpactivis/test.php
- /wp-content/themes/wpactivis/_/test.php
- /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 のコーディング方法が悪いとか、そんなことは聞きたくないとは言わないでください。私たちは完全に安全なセットアップを行っており、プラグインやテーマ ディレクトリに直接ファイルにアクセスできるという事実は関係ありません。たくさんの同様の質問がウェブに投稿されていますが、答えはありません。あなたがそうするべきだと言っている人だけです. 私がここで試みているのは、なぜそれが一方のサーバーで行われ、もう一方のサーバーでは行われていないのかについての答えを得ることです。