web-dev-qa-db-ja.com

301リダイレクトの問題を修復するために助けが必要

私は自分のウェブサイトに問題があり、その結果SEOmozでクロールテストをしました。テストはウェブサイトのすべてのページの301の永久に動かされたリダイレクトを見つけました、そして、彼らは彼ら自身に戻ってリダイレクトされるようですか?

私のウェブサイトのクロールを完了した後、私はこれらの各ページのURLに追加された破損したデータであると思われるもののこの膨大な量があることがわかりました: https://www.getyourphotosoncanvas.com /%7Egetyouv4/%7Egetyouv4/contact-us.html 301は https://www.getyourphotosoncanvas.com/%7Egetyouv4/contact-usにリダイレクトします。 html

その後、それぞれ次の行を追加する長いリダイレクトリストが続きます。例:domain/7Egetyouv4 /%7Egetyouv4 /%7Egetyouv4 /../% 7Egetyouv4 /%/ contact-us.html

この繰り返し部分、%7Egetyouv4は永遠に続きます...私は投稿のためにそれを短くし、3番目のリンク(投稿制限)を防ぐためにドメイン名を削除しました。

これが問題になっていることを私は知っています。 Bluehostのサポートによると、301個のリダイレクトは表示されませんが、WP xmlrpc.phpファイルに問題がある可能性があります。私はこれで初心者です誰かがこれが何を意味するのか私に教えてください。

明確にするために、私はリダイレクトを設定しませんでした、リダイレクトを必要としません、これは私の知らないうちに現れました。ハックを提案した人はいますか?

もっと重要なのは、あなたはそれを修正する方法を教えてもらえますか?

4
user16360

私はこれが古くからあるスレッドであることを知っていますが、私は2017年3月に正確な解決策を探すためにそれを見つけました。私はそこで助けを求めていたので私はそれをXテーマサポートフォーラムに投稿し、そしてそれがより広い露出を必要とすると決めました。

奇妙な(私には)解決策は、私の.htaccessの2つの部分を並べ替えることでした。ここでそれは同様に彼らの机に対して彼らの頭を強打する人のためのものです…

.htaccessには2つのことが必要です。サイトのWebルートにあるWPインスタンスにDomain1.comを参照しているユーザーを取得し、 SubdirectoryNameというサブディレクトリにあるDomain2.comを参照しているユーザーをWPインスタンスにリダイレクトします ここで。コードセクションは続きます。 Home以外のすべてのページで301エラーが発生した.htaccessファイルでは、WPメソッドの前にリダイレクトメソッドがありました。私はWPメソッドをリダイレクトメソッドの上に移動し、プラグインを無効にし、残っている開発ドメインURLの多くをBetter Search Replaceプラグインで検索して置き換え、さらには.htaccessを無効にしました。私はどれだけ近いのかを知っていて、Domain2.comが望むようにリダイレクトしていて、サイトとサイトは正常に動作していました。

物語の教訓は、WPが最初に認識されることを要求するプリマドンナのように見えるということです。

標準のWP構文:

# 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

Domain2.comをSubdirectoryNameのWPインスタンスに送信するためのコードをリダイレクトします

# BEGIN redirect to SubdirectoryName
RewriteEngine on
RewriteCond %{HTTP_Host} ^(www.)?domain2.com$
RewriteCond %{REQUEST_URI} !^/SubDirectoryName/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /SubDirectoryName/$1
RewriteCond %{HTTP_Host} ^(www.)?domain2.com$
RewriteRule ^(/)?$ SubDirectoryName/index.php
RewriteBase /
RewriteRule ^index.(.*)?$ http://domain2.com/SubDirectoryName/ [r=301]
# END redirect to SubdirectoryName

そのリダイレクト構文のすべてが何を意味するのかを知っていれば危険です。すべてのコードをもう学ぶ必要はなく、WPエコシステムは正常に機能しています。学習曲線の傾きを減らすためにX、サポート、およびいくつかの価値のあるプラグインを支払って喜んでいます。私はただ最近それをだますための時間 - あるいは欲求 - を持っていません。私は自分の最初のサイトをメモ帳でデザインしました。1994 - 5年頃に、私の上級研究論文をオンラインにするために、いくつかのボタンとヘッダーをPhotoshopに組み込みました。それからあなたはすべてのドットとスラッシュを知っていなければなりませんでした、しかし、それらのうちのより少数があった、そしてそれはより征服的な事柄でした。あなたは、その本が「24時間でHTMLを学ぶ」と題されていたので、あなたはできました。

これが欲求不満の魂がさらに数時間睡眠をとるのに役立つことを私は願っています!

2
Alan C

テーマの悪いコード、プラグインの悪いコード、.htaccess設定の問題など、さまざまな問題が考えられます。

.htaccessの編集方法がわからない場合は、まず次の手順を実行してください。

  • テーマを変更する
  • プラグインを無効にする

それでも問題が解決しない場合、おそらく.htaccessと関連があるはずです。

これで問題が解決する場合は、元のテーマに戻って問題が解決したかどうかを確認してください。もしそうなら、それはテーマの問題です。そうでない場合は、プラグインを1つずつ再アクティブ化し、再アクティブ化のたびにテストしてリダイレクトの原因となっているプラ​​グインを特定します。

あなたができることの一つは、破損したファイルがないことを確認するために http://sucuri.net/ であなたのウェブサイトをスキャンすることです。すべてがきれいであれば、それはデバッグするためのより複雑な問題になり始めます。

1
Julien

ファイル転送プログラム(FTP)を調べて、「。htacess」というラベルの付いたファイルを探します。

その中のすべてを削除して、以下のコードを入れてください:

# 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

これが完了したら、パーマリンクの設定に入り、あなたが望むものに更新してください。

0
Nathan Drier

Htaccessファイルを削除し、permalinksオプションを更新して、問題が解決するかどうか確認してください。

0
Satish Gandham