KennyQiのPHPメモと息抜きブログ

KennyQi(ケニーチー)のブログへようこそ
Web制作 PHP開発のメモと息抜きブログ
ウェブ開発・デザイン・Nucleusのメモや旅日記などを綴っています
動的URLを静的URLに~FuncyURL + Apache
2008年01月06日 | Nucleus | Posted by: kennyqi | 509 PV
Google の引っかかりがあまりよくないので、検索エンジンに引っかかりやすくなるというFuncyURLにしました。

URLが
「http://example.org/index.php?itemid=1234」

「http://example.org/item/1234」に変わります。


手順
1) /extra/fancyurls ディレクトリにあるindex.html以外の全部のファイルをルートディレクトリ(index.php と action.phpがあるディレクトリ)にコピーします。

2)すでにルートディレクトリに.htaccessファイルを設置している方はまず現在の.htaccessファイルをダウンロード後に今回の /extra/fancyurls ディレクトリにある.htaccessファイルの中身を追加してください。

.htaccessファイルを設置していなかった方は/extra/fancyurls ディレクトリにある.htaccessファイルをそのまま使用します。

3)「fancyurls.config.php」という名前のファイルの中の$CONF['Self']の値を自分のトップページのURLとします。
★URLの末尾にスラッシュは絶対に入れないこと。

4)index.phpファイルの$CONF['Self']の値を下記のようにして、includeを追加します。これをやらないと、URLがindex.php/item/1234などとおかしくなります。

[例]

<?php
// This file will generate and return the main page of the site
$CONF = array();
// $CONF['Self'] = 'index.php';

$CONF['Self'] = '.';

include('./fancyurls.config.php');

include('./config.php');

selector();

?>
 


5)「fancyurls.config.php」「index.php」「.htaccess」をサーバにアップロードします。

6)最後に、管理エリアのグローバル設定にて
URLモードを「FancyURLモード」に変更します。
これで完了です。

もしページが正常に表示されない場合(Internal Server Errorなどと表示される場合)は、残念ですがこの対策は使えません。上の作業で追加したファイルを速やかに削除し(.htaccessファイルの削除も忘れずに)、管理エリアのグローバル設定においてURLモードを元に戻してください。

もし、mod_rewriteがインストールされていて
not foundなどが表示される場合は「.htaccess」が動作していないことが考えられます。
「.htaccess」を動かすには
Apacheのhttp.conf内で
<Directory>~</Directory> に
AllowOverride All
を追加します。この方法はhttp.confを変更できる場合に限ります。

Comments

kennyqi wrote:
FuncyURLにしたため、テンプレートを変更しました。
Google/Sitemap
feeds系
新着記事表示系などを下記のように変更しました。

<%sitevar(url)%>?itemid=<%itemid%>

<%sitevar(url)%>item/<%itemid%>

まだ、Googleには前のURLで登録されています。
サイトマップはFuncyURLで読み込まれてるのですが
クローラーがこないと検索結果には現れてこないのでしょうか。
01/08 07:41:43

Add Comment