User:
Pass:
Keep:   
Xoops Cube Project
XOOPS Cube Project Site
Powered by Google


Powered by XOOPS Cube Legacy 2.1.8
PukiWikiMod 1.5.1
WordPress Module 0.6.0 Alpha
rewrite置換定義について 投稿者: pocopen 投稿日:2005/11/02(Wed) 05:58 No.2164  
お世話になっております。
GIJOEさんのサイトで、xoops隠蔽(w)について投稿なさっていた内容につきまして
.htaccessの記述方法をお教えいただけますでしょうか?
一応GIJOEさんのコードでの動作を確認しています。

mainfile.phpに

$GLOBALS['_rewriteRulesFrom'] = array(
'/whatsnew/',
'/main.css',
'/include/mains.js');
$GLOBALS['_rewriteRulesTo'] = array(
'/modules/news/',
'/xoops.css',
'/include/xoops.js');

とし、.htaccessへ

#-----
RewriteEngine on
RewriteRule ^whatsnew/(.*)$ modules/news$1 [L]
RewriteRule ^main.css$ modules/xoops.css$1 [L]
RewriteRule ^include/xoops.js$ include/main.js$1 [L]
#-----

等単語を前後入れ替えながら試しているのですが
ウマく反映がされません。この部分についてご教授いただけますでしょうか?

なお、この件についてGIJOEさんのサイトとでマルチポストに
なっております。(あとで対応致します。)m(__)m

 


Re: rewrite置換定義について 投稿者: のぶのぶ 投稿日:2005/11/02(Wed) 13:06 No.2167  

GIJOEさんのところで投稿したものは、mainfile.phpでの書換方法をかなり修正しています。
現在、あるサイトで、mainfile.php内に追加したコードは、

    $GLOBALS['_rewriteRulesFrom'] = array(
        '/whatsnew/',
        '/info/profile.html',
        '/info/works.html',
        '/info/lesson.html',
        '/topics/index.html',
        '/info/',
        '/diary/',
        '/contents/',
        '/gallery/',
        '/contact_form1.html',
        '/contact_form2.html',
        '/main.css',
        '/include/main.js',
    );
    $GLOBALS['_rewriteRulesTo'] = array(
        '/modules/news/',
        '/modules/tinycontent/pages/tc_2.html',
        '/modules/tinycontent/pages/tc_3.html',
        '/modules/tinycontent/pages/tc_1.html',
        '/modules/tinycontent/pages/tc_15.html',
        '/modules/tinycontent/',
        '/modules/wordpress/',
        '/modules/pukiwiki/',
        '/modules/myalbum/',
        '/modules/formmail/?id_form=1',
        '/modules/formmail/?id_form=2',
        '/xoops.css',
        '/include/xoops.js',
    );
    
    $GLOBALS['_abs_offset'] = preg_replace('/https?:\/\/'.$_SERVER["HTTP_HOST"].'/','',XOOPS_URL);
    $GLOBALS['_rewriteRulesTo1'] = preg_replace('/^(.*)$/e','"!('.XOOPS_URL.'|\"".$GLOBALS["_abs_offset"]."|\'".$GLOBALS["_abs_offset"].")".preg_quote("\1","!")."!"', $GLOBALS['_rewriteRulesTo']);
    $GLOBALS['_rewriteRulesFrom1'] = preg_replace('/^(.*)$/','\\\1\1',$GLOBALS['_rewriteRulesFrom']);

    function modules_changer( $s ) {
        $s = preg_replace($GLOBALS['_rewriteRulesTo1'],$GLOBALS['_rewriteRulesFrom1'], $s);
        for($i=0; $i<count($GLOBALS['_rewriteRulesFrom']); $i++) {
            $s = preg_replace( '/('.preg_quote(XOOPS_URL,'/').'|"|\')'.preg_quote($GLOBALS['_rewriteRulesTo'][$i],'/').'/' , "\\1".$GLOBALS['_rewriteRulesFrom'][$i] , $s ) ;
        }
        return $s;
    }
    if (empty($_SERVER['REDIRECT_URL']) || ($_SERVER['REDIRECT_URL'] == $_SERVER['REQUEST_URI'])) {
        if (empty($_SERVER['REDIRECT_REDIRECT_STATUS'])) {
            if (($_changer_url=modules_changer('"'.$_SERVER['REQUEST_URI'].'"')) != '"'.$_SERVER['REQUEST_URI'].'"') {
                //if request url is old url redirect to new
                header('Location: ' . str_replace('"','',$_changer_url));
            }
        }
    }
    $_SERVER['REQUEST_URI'] = str_replace( $GLOBALS['_rewriteRulesFrom'],$GLOBALS['_rewriteRulesTo'], @$_SERVER['REQUEST_URI'] ) ;
    $_SERVER['HTTP_REFERER'] = str_replace($GLOBALS['_rewriteRulesFrom'], $GLOBALS['_rewriteRulesTo'], @$_SERVER['HTTP_REFERER'] ) ;
    
    ob_start( 'modules_changer' ) ;

で、.htaccessの内容は、

RewriteRule ^whatsnew/(.*)$ /modules/news/$1 [L]
RewriteRule ^info/profile.html(.*)$ /modules/tinycontent/pages/tc_2.html$1 [L]
RewriteRule ^info/works.html(.*)$ /modules/tinycontent/pages/tc_3.html$1 [L]
RewriteRule ^info/lesson.html(.*)$ /modules/tinycontent/pages/tc_1.html$1 [L]
RewriteRule ^topics/index.html(.*)$ /modules/tinycontent/pages/tc_15.html$1 [L]
RewriteRule ^info/(.*)$ /modules/tinycontent/$1 [L]
RewriteRule ^diary/(.*)$ /modules/wordpress/$1 [L]
RewriteRule ^contents/(.*)$ /modules/pukiwiki/$1 [L]
RewriteRule ^gallery/(.*)$ /modules/myalbum/$1 [L]
RewriteRule ^contact_form1.html(.*)$ /modules/formmail/index.php?id_form=1$1 [L]
RewriteRule ^contact_form2.html(.*)$ /modules/expired/index.php [L]
RewriteRule ^main.css$ /xoops.css [L]
RewriteRule ^include/main.js$ /include/xoops.js [L]

となっています。
ご参考まで!


Re[2]: rewrite置換定義について 投稿者: pocopen 投稿日:2005/11/03(Thu) 07:00 No.2168  

引用:

のぶのぶさんは書きました:
GIJOEさんのところで投稿したものは、mainfile.phpでの書換方法をかなり修正しています。


単純な内容ではなかったのですね。

早速ためしてみます。お手数をおかけしました。
ありがとうございました。m(__)m


Re[3]: rewrite置換定義について 投稿者: taka 投稿日:2006/08/09(Wed) 14:24 No.3063  

こちらの記事を参考に、mainfile.php、.htaccessをアップしたのですが、
「modules/」なしのURLでページを表示させることができません。
何か他に設定する必要があるのでしょうか?
サーバーはXREAを使用しています。

初心者の質問で申し訳ございません。。


Re[4]: rewrite置換定義について 投稿者: taka 投稿日:2006/08/23(Wed) 13:59 No.3107  

自己レスです。

「modules/」の部分を「http://〜」から記載すると表示されるようになりました。

ただxoopspollで投票すると、「投票を受け付けました。」と表示されるのですが、
票数が反映されなくなってしまいました。

どうすれば再度カウントされるようになるのでしょうか??


Re[5]: rewrite置換定義について 投稿者: NobuNobu 投稿日:2006/08/23(Wed) 14:34 No.3111  

引用:

ただxoopspollで投票すると、「投票を受け付けました。」と表示されるのですが、
票数が反映されなくなってしまいました。

どうすれば再度カウントされるようになるのでしょうか??

このURLの書換方法って、モジュールの作りによってかなり影響を受ける部分があります。
若干違う実装方法で、http://www.nobunobu.com も URLの書換を行っていますが、
これとても、かなりの試行錯誤の産物です。
というこよで、各モジュールについて、逐一当方で検証する事も出来ませんし、
この方法についてはPHP,Apacheについて自分で解決が出来るスキルを持っている方以外は、使用をお奨めできないというのが正直なところです。

もしPHPのスキルをお持ちであるならば、XOOPSPOLLの投票に相当するリクエストが、PHP側でどのように受け付けられて、どのような処理が実行されているかを地道に追いかけていく以外、解決の方法は無いと考えます。


NO: PASS:

このプログラムは KENT 氏の yybbs を xoops(PHP) に移植したものです
- KENT -