We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 15611
    • 19 Posts
    kenと申します。この度、0.95をインストールさせていただきましたが、フレンドリーURLが機能せず、404が返ってきましてご助言いただきたく投稿させていただきました。

    サーバが、apache2.2系のため、以下の記事を参考にさせていただきまして、
    http://modxcms.com/forums/index.php/topic,10085.msg69132.html#msg69132
    http://modxcms.com/forums/index.php/topic,9765.0.html

    modx/内のht.accessを.htaccessに、modx/manager内の.htaccessも同様にしました。

    そして、
    modx/.htaccess内の一部を
    RewriteEngine On
    RewriteBase /modx
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]
    

    のように変更し、phpinfo()でmod_rewiteがサポートされていることも確認しました。
    またmodx/.htaccessにはBASIC認証も記述していまして、ちゃんと認証も動いていますので、.htaccessが動いていないということもないかと思います。

    そして、
    http://modxcms.com/forums/index.php/topic,9765.0.html
    ここにある手順6のようにチェックを入れていますが、なぜか404が返ってきてしまいます。

    このような場合、ほかにチェックすべきところはありますでしょうか?
    現状これぐらいの情報しかなく申し訳ないのですが、ご助言いただけると助かります。

    よろしくお願いします。

    環境
    OS:Debian SID
    MODx:0.95
    Apache: 2.2.3
      • 21772
      • 69 Posts
      kenさん
      はじめまして、Noriです。
      自分も最近Apache2.2に切り替えたのですが、つまづいたのは次の2点
      でした。

      1)Apache2.2をtarボールからインストールすると、デフォルトでAllowOverride None
      で、htaccessが使えない状態になっています。 レンタルサーバではhttpd.conf
      を見る事がないのでつまづきました。
      2)RewriteBase / になっていた事、http://ドメイン名/でサイトを作成すれば
      問題にならなかったと思うのですが、http://ドメイン名/modx/にてインストールし、メインの
      静的ページは残しつつ作業したかった。

      結局、現在は動作確認を全て終了し、RewriteBase /modx から RewriteBase /に
      htaccess変更し、サイトを公開しています。
      Linux等詳しくないのですが、動いたのでOKみたいな感じです。
        • 15611
        • 19 Posts
        Noriさんご返信ありがとうございます。無事解決しました。

        apacheのログを見ると、どうもエイリアスがうまくいっていないようで、/var/www/のほうを見に行ってしまうため、RewriteBaseを定義しなおしたところ解決しました。
        RewriteEngine On
        RewriteBase /~username/php/modx
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]


        原因はmod_userdirとの併殺というか、mod_userdirを使った上でRewriteBaseをちゃんと指定してあげていなかったことだと思います。
        これはapache2.2だけの問題ではないかもしれません。

        お手数おかけしましたが、無事解決しましたのでご報告させていただきます。