modules_changerハックを試してみた | Web for Art Project RSSを確認。

格安で中小規模のサイト(ホームページ)のデザインや構築、HP製作をする為の情報提供や各種代行を行っております。

Web for Art Project:SiteTop > ブログ > web忘備録 > xoops関連 > modules_changerハックを試してみた

ブログ

modules_changerハックを試してみた RSS2.0

modules_changerハックを試してみた

 2009-9-9 15:41  | web忘備録 »xoops関連

xoops特有の http://●●.com/modules/blog/ といった「modules」の部分とかを好きな文字列に

リダイレクトするというのがmodules_changerハック。http://●●.com/HP/blog/とかにね。

xoopsでっせぇぇってのが隠せるので、セキュリティ的にも気分的(なんか)にもいいのかな?SEO的にも?

ほんとは simplified_urlハック使いたかったんだけど。。副作用が。。。パネ。(TT)

とりあえず紹介。

注1: modulesそのものを消す等、パスの深さまで変えるのは、副作用の可能性高 要検証

・noneモジュールは非対応

注2: 新規にモジュールをインストールできなくなる可能性

注3: cubeUtilsモジュールを使用時 なんかオートログインが変(クッキー削除が原因?)

注4: htaccessはキャッシュされないので、ページを表示するたびに読み込まれ、あまり多く記述すると表示速度がちびっと遅くなる?


サイトがほとんど完成した状態で導入するのが吉

 

 modules だけを好きな文字列にするハック 簡単

参考元:PEAK XOOPS /modules/ changerのテスト中

mainfile.phpのトップに


if( ! function_exists( 'modules_changer' ) ) {
$_SERVER['REQUEST_URI'] = str_replace( '/HP/' , '/modules/' , @$_SERVER['REQUEST_URI'] ) ;
$_SERVER['HTTP_REFERER'] = str_replace( '/
HP/' , '/modules/' , @$_SERVER['HTTP_REFERER'] ) ;
function modules_changer( $s ) {
return str_replace( XOOPS_URL.'/modules/' , XOOPS_URL.'/
HP/' , $s ) ;
}
ob_start( 'modules_changer' ) ;
}

 

XOOPS_ROOT_PATHに放り込む.htaccess 

#<modulesURL Hack>

RewriteEngine on
RewriteBase /
RewriteRule ^HP/(.*)$ modules/$1 [L]

#</
modulesURL Hack>

 ドメイン以下のURLそのものを好きな文字列にするハック お勧め

参考元:のぶのぶXOOPS rewrite置換定義について

mainfile.php内に追加

if( ! function_exists( 'modules_changer' ) ) {
$GLOBALS['_rewriteRulesFrom'] = array(
'/sitenews/',
'/info/index.html',
'/gallery/',
'/main.css',
'/include/main.js',
);
$GLOBALS['_rewriteRulesTo'] = array(
'/
modules/bulletin/',
'/modules/pico/index.php?content_id=1',
'/modules/myalbum/',
'/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' ) ;
}


XOOPS_ROOT_PATHに放り込む.htaccess

#<URL Hack> 
RewriteEngine on
RewriteBase /
RewriteRule ^sitenews/(.*)$ /modules/bulletin/$1 [L]
RewriteRule ^
info/index.html(.*)$ /modules/pico/index.php?content_id=1$1 [L]
RewriteRule ^
gallery/(.*)$ /modules/myalbum/$1 [L]
RewriteRule ^
main.css$ /xoops.css [L]
RewriteRule ^
include/xoops.js$ /include/xoops.js [L]
#</
URL Hack>


問題がないか細かく検証した方がいいです。

.htaccessは、プラウザキャッシュされないので、結局、動作を優先するなら、指定を少なめにするか

使うべきではない感じです。

 

  • トラックバック (0)

トラックバックpingアドレス

http://webforart.net/modules/blog/tb.php/6

新しくコメントをつける

題名
ゲスト名   :
投稿本文
より詳細なコメント入力フォームへ

コメント一覧

カレンダー

« « 2010 9月 » »
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2

ログイン

IDとパスワードを記憶