web-dev-qa-db-ja.com

Joomla 2.5.6無限303ループ(SEF)

Joomla 2.5.6サイトをあるサーバーから別のサーバーに移行しようとしています。 scpを使用してファイルを1つずつコピーし、データベースのmysqldumpを取得したので、新しいサーバーにコードのクローンがあることを確認しています。

元のサーバーと識別できる違いは次のとおりです。

  • PHP5.5がインストールされている(7.1を使用している)
  • Apache 2.2.14を使用しました(私は2.4.18を使用しています)
  • HTTPSでは提供されませんでした(有効なLetsEncrypt証明書を使用しています)

ホームページをロードすると、303エラーの無限ループが発生します。これは、最初はlanguagefilterプラグインに関連しているように見えましたが、SEFにも関連しているようです。

SEF off and no languagefilter: Page loads, links broken
SEF off and languagefilter present: Infinite redirect loop

管理ダッシュボードにログインできないので、それを使用してものを無効にすることはできません。グローバル構成でSEF設定を編集しましたが、オフにするとサイトが表示されます(テンプレートが間違っています)。

私のApache vhostは次のようになります。

<IfModule mod_ssl.c>
<VirtualHost *:443>
    DocumentRoot /var/www/html/fmjock
    ServerName fmjock.mystery.co.za
    <Directory "/var/www/html/fmjock">
        AllowOverride All
        allow from all
        Options +Indexes
   </Directory>
SSLCertificateFile /etc/letsencrypt/live/fmjock.mystery.co.za/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/fmjock.mystery.co.za/privkey.pem
Include /etc/letsencrypt/options-ssl-Apache.conf
</VirtualHost>
</IfModule>

Apache2が.htaccessファイルを尊重し、それが元のサーバーのものと同じであることを確認しました。異なる唯一のファイルは、データベースの詳細を変更したグローバル構成です。

編集:これはHTTPまたはHTTPSで発生し、非セキュアからセキュアへの301リダイレクトではなく、wgetは303を返していることを示しています。

root@sites-available# wget fmjock.mystery.co.za
--2017-12-14 07:50:57--  http://fmjock.mystery.co.za/
Resolving fmjock.mystery.co.za (fmjock.mystery.co.za)... 77.68.74.51
Connecting to fmjock.mystery.co.za (fmjock.mystery.co.za)|77.68.74.51|:80... 
connected.
HTTP request sent, awaiting response... 303 See other
Location: http://fmjock.mystery.co.za/en/ [following]
4
Andy

問題はおそらくHTTPSリダイレクトです。 .htaccessファイルの先頭でHTTPSにリダイレクトし、後でHTTPにリダイレクトしている可能性があります。別のシナリオは、Joomla WebサイトがHTTPSを使用するように設定されているが、.htaccessファイルにHTTPへのリダイレクトがある場合です。

2
itoctopus

あなたの問題はいくつかの理由に関連している可能性があります:

  • PHPバージョン(Joomla 2.5は、PHP 7)で実行するように構築されていません)
    • 新しいサーバーをPHP 5.6に設定してみます。これは多くの場合、cPanelを介して行われるか、ホスティングプロバイダーに問い合わせます。
  • 転送中のエラー(ファイルの欠落または破損)
    • 転送に Akeeba Backup を使用してみてください。バージョン4.7.7はJoomla 2.5で動作するはずです。
  • 古いJoomlaバージョン。
  • 。htaccessファイル内の無効なコード。
    • あるサーバーで動作するコードは、別のサーバーでエラーを引き起こす可能性があります。 .htaccessファイルの名前を変更してみてください。 old.htaccessconfiguration.phpファイル(public $sef_rewrite = '0';)でURLの書き換えを無効にすることを忘れないでください

これらは単なる一般的なソリューションですが、それは良い出発点です。インストールした拡張機能によっては、最初のオプション(PHPバージョン)が問題である可能性が高いと思います。

お役に立てれば。

1
johanpw