Koba
koba.****@gmail*****
2007年 6月 23日 (土) 08:13:51 JST
URLの書き換えを下記コード追加&mod_rewriteで実現しました。 /catalog/includes/functions/html_output.phpの if ( (SEARCH_ENGINE_FRIENDLY_URLS == 'true') && ($search_engine_safe == true) ) { ・・・・・・・ $link = str_replace('=', '/', $link); の後に下記コードを追加、新URLを生成し、旧URLに変換するrewriteルールをhttpd.confに追加するカスタマイズを行いました。 例えば、www.xxx.com/product_info.php/products_id/xxx(旧URL)を www.xxx.com/item/xxx.html(新URL)で表示させることができています。 httpd.confには、以下のように記載(一部ですが・・・) RewriteEngine On RewriteBase / RewriteRule ^item/(.*)\.html$ product_info.php/products_id/$1 ただ、このままの場合、旧URLへのアクセスを新URLへリダイレクトすることができず、 エンジン対策的にも好ましくありません。 そこで、httpd.confに RewriteRule ^product_info.php/products_id/(.*)$ item/$1.html [R=301] を追加して対応・・・と思ったのですが、無限ループを起こしてしまいます。 当然だとは思うのですが・・・ httpd.confの書き方をどのように修正すればよいのでしょうか? お解りになる方、よろしくお願いいたします。 このカスタマイズは以下のページを参考に行いました。 http://gato.intaa.net/ZenCart/url_rewrite_patch_jp.html /catalog/includes/functions/html_output.phpに追加したコード /*---URLの書き換え-----*/ if (ereg('cPath', $link)) { $link = str_replace('index.php/cPath/', 'cate/', $link); $link = str_replace('/sort/2a', '', $link); $link = $link . ".html"; } if (ereg('manufacturers_id', $link)) { $link = str_replace('index.php/manufacturers_id/', 'color/', $link); $link = $link . ".html"; } if (ereg('cPath', $link)) { $link = ereg_replace('/cPath/([0-9_]{1,})', '', $link); $link = str_replace('.html', '', $link); } if (ereg('products_id', $link)) { $link = str_replace('product_info.php/products_id/', 'item/', $link); $link = $link . ".html"; } if (ereg('manufacturers_id', $link)) { $link = ereg_replace('/manufacturers_id/([0-9_]{1,})', '', $link); $link = str_replace('.html', '', $link); } if (ereg('products_id', $link)) { $link = str_replace('product_info.php/products_id/', 'item/', $link); $link = $link . ".html"; } if ( ($page == 'specials.php') or ($page == 'products_new.php') or ($page == 'infomation.php') or ($page == 'sitemap.php') or ($page == 'privacy.php') or ($page == 'about_us.php') or ){ $link = str_replace('specials.php', 'sale', $link); $link = str_replace('products_new.php', 'new', $link); $link = str_replace('.php', '', $link); $link = $link . ".html"; } if (ereg('page', $link)) { $link = str_replace('sale/page/', 'sale/page/', $link); } if (ereg('page', $link)) { $link = str_replace('new/page/', 'new/page/', $link); } /*---URLの書き換え-----*/ -- 小林