web-dev-qa-db-ja.com

Wordpressは404エラーでそれらを上書きするため、wordpress以外のサブディレクトリにアクセスすることはできません。

私は以前に尋ねられ、適切に答えられなかったこの質問を参照してください: Wordpressが実際のサブディレクトリを上書きしています そしてまた Wordpress以外のページ/ 404エラーが発生しています

私は同じ問題を抱えています、そして私は私がネットで見つけたほぼすべてのことを試みました。それは間違いなくワードプレスでパーマリンクをオンにすることに関連しています。ただし、サブディレクトリに新しい.htaccessファイルを追加しました。

RewriteEngineオフ

そして問題はまだ存在します。 wordpressの.htaccessファイルを完全に削除しても問題は解決しません。

ErrorDocument 401 "Unauthorized access"やErrorDocument 404 "Unauthorized access"やRedirect 301/mysubdirectory http://www.mydomain.com/mysubdirectory/index.html など、他の推奨される解決策もさまざまな場所で試しました無駄にすべて。

誰かが他の解決策を提案してもらえますか?私がそれを直すことができる唯一の方法はパーマリンクをオフにすることですが、我々はそれらをオンにする必要があります。

ありがとう、

ニコール

33
Nicole

私はあなたがあなたのサイトルートにWordPressを置き、外部ディレクトリもあなたのサイトルートにあると仮定します。これが起こっている理由は、.htaccessファイルが階層をたどることです。最上位の.htaccessファイルに含まれるディレクティブがすべて下に流れ、その下のすべてのディレクトリに適用されます。

この場合、いくつかのことができます。

  1. WordPressをそれ自身のディレクトリに移動してください。参照してください: http://codex.wordpress.org/Moving_WordPress 自分のディレクトリに他のディレクトリと同じレベルになるようにWordPressを移動しても、他のディレクトリに影響を与えないディレクトリ.

  2. RewriteEngine Off - これは通常うまくいくでしょう。うまくいかない場合は、ワイルドカードDNS設定を使用していないことを確認してください。 DNS設定でWebサーバーを指すワイルドカード*のホスト名レコードがあると、.htaccessとサブドメインが混乱する可能性があります。

  3. サイトルートの.htaccessファイルに、WordPressの.htaccessディレクティブの上に次のコードを追加します。

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} ^/subdirectoryname1/(.*)$ [OR]
    RewriteCond %{REQUEST_URI} ^/subdirectoryname2/(.*)$ [OR]
    RewriteRule ^.*$ - [L]
    </IfModule>
    

これらのうちの1つはあなたのために働くべきです。

28
Elpie

これは私にとって過去にも同様の状況でうまくいった。

これを.htaccessの上に置きます

ErrorDocument 401 default
17
mike23

私はこのスレッドが数ヶ月前にあるのを見ます、しかし念のためにあなたがそれを働かせなかった!

私は同様の問題を抱えていましたが、私の問題は、ワードプレスのインストールがルート内(WPインストールディレクトリの外側)のフォルダへのURLアクセスを妨げるサブディレクトリにあることです。これを解決するために、WP installがあるサブディレクトリからindex.phpと.htaccessの両方をコピーして移動し、両方ともルートpublic_html(または実行しようとしているサブディレクトリ)に配置しましたWPインストールディレクトリの外側にアクセスする場合)。 .htaccessファイルには、すでにパーマリンクの書き換え条件があります。

RewriteEngine On
RewriteBase /subdirectoryinstallfolder/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

更新のためのパーマリンクを有効にすると、それはすべての問題を解決しました。これは私にとって過去の問題を引き起こしていたので、ルートフォルダに対するあなたの許可も正しく設定されていることを確認してください。

4
Kirsten Douglas

私は自分のページにアクセスしようとしたときに私は私のページにアクセスしようとしたときに同じサーバーに別のサブディレクトリのフォルダに私のファイルをコピーすると他のページはないと404エラーを与えています。私の下手な英語ですみません!

私はちょうど私のhtaccessを見てください。

#BEGIN WordPress 
 
 RewriteEngine On 
 RewriteBase /
RewriteCond%{REQUEST_FILENAME}!-f 
 RewriteCond%{REQUEST_FILENAME} !-d 
 RewriteRule。 /index.php [L] 
 
#END WordPress

そして新しいものを

#BEGIN WordPress 
 
 RewriteEngine On 
 RewriteBase/subdirectoryfolder
RewriteCond%{REQUEST_FILENAME}!-f 
 RewriteCond%{REQUEST_FILENAME -d 
 RewriteRule。 /subdirectoryfolder/index.php [L] 
 
#END WordPress 
3
lizette

あなたがまだhtaccessを無効にした状態で404を取得していて、パスを確認して、ファイルがそこにあることを知っているならば、残っている唯一のオプションはこれらの3つです...

オプション...

  1. サーバーはおそらく大文字と小文字を区別するオペレーティングシステムを実行しています。つまり、パスを入力しても正確な文字を使用しないで大文字と小文字を区別するだけではうまくいきません。
  2. アクセス許可:ファイル、フォルダ、または親フォルダに対するアクセス許可が間違っている可能性があります。ファイル、フォルダ、および親フォルダのアクセス許可を755に変更してみてください。あなたがそれにssh(端末)アクセス権を持っているなら、それからあなたのルートに行き、そしてこの "chmod -R 755 mydir"を実行してください、そしてそれはそれらすべてのためのパーミッションを再帰的に設定するでしょう。
  3. それでも問題が解決しない場合は、サーバー構成に問題があります(おそらくApache)。あなたはそれについてあなたのホスティングプロバイダと話す必要があるでしょう。

それでもうまくいかない場合は、新しいホストが必要です。私は、素晴らしいサポートとSSHアクセスを提供する安価なホスティングのためにhostmonster.comをお勧めします。私はそれらを使用します、月額約5ドルかかります。もっと堅牢でスケーラブルで、まだ良い価格設定のものが必要な場合は、mediatemple.netをお勧めします。彼らはスケーラブルなクラウドホスティングを月額20ドルから提供しています。あなたがトラフィックの劇的な増加を見ることを期待しているか、またはあなたがすでに非常に高いトラフィックを持っていると思うなら私は2番目の選択肢だけで行くでしょう(私は1時間あたり500-1,000 +を話しています)。

3
Patrick

私の髪の毛をほとんどhtaccessを編集した後、私はついにWordPressのために働くだろう解決策を見つけました。

私はWordPressがインストールされているのと同じルートディレクトリにcodeiginterスクリプトをインストールした後にこの問題を抱えていました。

ここにリストされているすべてのトリックを試した後も、新しいスクリプトに関連するページで404エラーが発生していました。

私はWordPressのhtaccessがスクリプトのhtaccessをオーバーライドしていたことに気付きました。私はまた、同じディレクトリにある他のWordPressのインストールではこの404エラーが発生しなかったことにも注意しました。

私は単に同じサーバーディレクトリの新しいWordPressインストールからhtaccessを採用して、私のスクリプトが置かれているフォルダーにそれを追加しました。これはどのように見えるかです:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /subdirectoryname/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /subdirectoryname/index.php [L]
</IfModule>

subdirectoryname を自分のディレクトリの名前に置き換え、このhtaccessファイルをスクリプトが置かれているフォルダ内に置きます。

例:サイトがここにインストールされている場合

public_html/

そして新しいフォルダは見つけられます

`public_html/example`

上のhtaccessをコピーして 'example'フォルダの中に保存すればうまくいきます。

2
NJENGAH

私は同じような問題に出くわしたので、私は何度もここで反応を見ました。私はそれらにアクセスしようとしたときに404エラーをスローするサブディレクトリにファイルがあります。 Kirsten Douglasが言うように、すべての.htaccessのものはそれを修正できませんでした、Wordpressはすでに仕事をしています。

私の解決策

私はこれを見つけました 記事 サーバー上のerror_logをチェックした後。スクリプトのUIDが間違っているというメッセージが表示されました。私はまた404がファイルのために投げられていなかったことに気づいたが、サーバーは500.htmlファイルを提供することができなかったので、すなわち私は500エラーがあった。

私はファイルをrootとして作成し、所有権をWebファイルの所有者に変更する必要があることがわかりました。

私はこれが同じ問題を抱えている他の人たちに役立つことを願っています!

1
Dan

サブフォルダー内のリクエストではWordPressのルールが無視されるようにするためのRewriteCondディレクティブを追加するだけで済みます。

RewriteCond %{REQUEST_URI} !^/mysubdirectory
# rest of WordPress rewrite rules

しかし、 no WordPress .htaccessでも問題が発生しているとお分かりでしょうか。サブディレクトリ.htaccessの内容は何ですか?

0
TheDeadMedic