XPressME Integration Kit

フォーラム

パーマリンク設定について

永らくありがとうございました フォーラム 使い方全般 パーマリンク設定について

  • このトピックには5件の返信、2人の参加者があり、最後にtoemonにより11年、 11ヶ月前に更新されました。
6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • 投稿者
    投稿
  • #2629
    匿名
    ゲスト

    はじめて質問いたします。

    XPressME Integration Kitを使わさせていただいております。

    タイトルの通りなのですが、2.1.4まではパーマリンク設定が効いていたのですが、2.2.0に上げたとたんに効かなくなってしまいました。

    これは、バグなのでしょうか?どうすればいいのでしょうか?

    よろしくお願いいたします。

    #3027
    toemon
    キーマスター

    blueboxxさんこんにちは、ご利用ありがとうございます。

    2.1.4まではパーマリンク設定が効いていたのですが、2.2.0に上げたとたんに効かなくなってしまいました。

    当方のテストサイトでは問題なさそうですが…

    パーマリンク設定が効かないとは、

    記事タイトルのリンクがパーマリンクにならず ?p=** とかの表示になっているということでしょうか?

    症状が理解できずなんとも言い難いですが、もし、リンクには正しいパーマリンクが表示されるにも関わらず

    「要求された URL は本サーバでは見つかりませんでした。 参照元ページのリンクが間違っているか、古くなってしまっているようです。 ページの著者にこのエラーをお知らせ下さい。 」

    などの表示が行われポストが表示されないのであれば、

    モジュールトップの.htaccessが無いか、設定したパーマリンクが反映されていないことが考えられます。

    いずれにせよ、一度、WordPressのパーマリンク設定で「変更を保存」を実行してもらえないでしょうか?

    パーマリンク「変更を保存」で駄目な場合は、

    システム情報をレポート形式で提示

    パーマリンクの設定内容の提示

    モジュールトップの.htaccess内容の提示

    をお願いいたします。

    #3028
    匿名
    ゲスト

    toemon様

    ご返答ありがとうございます。

    申し訳ありません。省きすぎました。

    パーマリンク設定をカスタム構造にしています。

    /%post_id%.html

    にして、変更を保存すると、.htaccessが出来ます。

    <IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteBase /xxxx/

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /xxxx/index.php [L]

    </IfModule>

    ですが、サーバー上モジュールトップに.htaccessが存在し更新されますが、

    「あなたの .htaccess が書き込み可能ならこの操作は自動的に行われますが…」

    というのが出てきてしまいます。

    試しに、.htaccessをアップロードし直したりしたのですが、.htaccessが存在しているのに.htaccessを認識していない感じでした。

    パーミッション644です。

    日付と投稿名・月と投稿名・数字ベースと試しましたが、同じような結果でした。

    そこで、デフォルトに戻すと表示されます。

    2.1.4に落とすと、全てが適用されます。

    システム情報は以下の通りになります。

    SERVER::Apache

    PHP Version::5.2.8

    libxml Version::2.6.26

    MySQL Version::5.0.45

    XOOPS Version::XOOPS Cube Legacy 2.1.7

    XPressME Version::2.2

    WordPress Version::2.9

    WP DB Version::12329

    safemode:OFF

    register_globals:OFF

    magic_quotes_gpc:ON

    XML extension:ON

    default memory_limit:128M

    change memory_limit:128M

    post_max_size:100M

    upload_max_filesize:100M

    display_errors:ON

    MB extension:ON

    mbstring.language:japanese

    mbstring.encoding_translation:ON

    mbstring.internal_encoding:UTF-8

    mbstring.http_input:pass

    mbstring.http_output:pass

    mbstring.detect_order:auto

    mbstring.substitute_character:none

    mbstring.func_overload:OFF

    申し訳ありませんが、よろしくお願いいたします。

    #3029
    toemon
    キーマスター

    「あなたの .htaccess が書き込み可能ならこの操作は自動的に行われますが…」

    というのが出てきてしまいます。

    試しに、.htaccessをアップロードし直したりしたのですが、.htaccessが存在しているのに.htaccessを認識していない感じでした。

    パーミッション644です。

    .htaccessの探しに行く場所を誤っているのかな?

    <IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteBase /xxxx/

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /xxxx/index.php [L]

    </IfModule>

    のxxxkの部分ですが

    # BEGIN WordPress

    <IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteBase /cube/modules/xp_trunk/

    RewriteCond %{REQUEST_FILENAME} !-f

    RewriteCond %{REQUEST_FILENAME} !-d

    RewriteRule . /cube/modules/xp_trunk/index.php [L]

    </IfModule>

    # END WordPress

    のように「modules/モジュールディレクトリ名」になっていると考えてもよいでしょうか?(モジュールのURLをRewriteRuleなどで変更していない?)

    #3030
    匿名
    ゲスト

    toemon様

    ご返答ありがとうございます。

    大変申し訳ありませんでしたm(_ _)m

    modulesを消す設定をしておりまして、「一般設定」の「ブログのアドレス (URL)」を変更していたために起きた現象でした。

    お手を煩わせてしまい、大変申しわけありませんでした。

    フォローして頂き誠にありがとうございました。

    #3031
    toemon
    キーマスター

    modulesを消す設定をしておりまして、「一般設定」の「ブログのアドレス (URL)」を変更していたために起きた現象でした。

    の場合は、WordPress のアドレスをブログのアドレスに合わせる{共にmodulesを消す設定のURLにする。}と、うまくいくでしょう。

    以下に.htaccessの場所を探す場合に利用している関数のコードを示します。

    <code>function get_home_path() {<br />
    $home = get_option( 'home' );<br />
    $siteurl = get_option( 'siteurl' );<br />
    if ( $home != '' && $home != $siteurl ) {<br />
    $wp_path_rel_to_home = str_replace($home, '', $siteurl); /* $siteurl - $home */<br />
    $pos = strpos($_SERVER["SCRIPT_FILENAME"], $wp_path_rel_to_home);<br />
    $home_path = substr($_SERVER["SCRIPT_FILENAME"], 0, $pos);<br />
    $home_path = trailingslashit( $home_path );<br />
    } else {<br />
    $home_path = ABSPATH;<br />
    }<br />
    <br />
    return $home_path;<br />
    }</code>

    つまり、WordPress のアドレス (URL)とブログのアドレス (URL)が同じであればABSPATH(*1)が使われますが、今回のように、ブログのアドレス (URL)で間のmodulesが抜かれてしまった場合は、

    $wp_path_rel_to_home = str_replace($home, ”, $siteurl); /* $siteurl – $home */

    の部分がうまく機能せず、異なったディレクトリ位置を示してしまいます。

    *1 ABSPATH

    WordPress のルートディレクトリにあるwp_config.phpで

    <code>/** Absolute path to the WordPress directory. */<br />
    if ( !defined('ABSPATH') )<br />
    define('ABSPATH', dirname(__FILE__) . '/');</code>

    として設定されています。

6件の投稿を表示中 - 1 - 6件目 (全6件中)
  • このトピックに返信するにはログインが必要です。