Nucleus

FancyURL もどき

2006年3月31日

同様に、FancyURL も実現できた。

まず、.htaccessを以下のように記述
ErrorDocument 404 /temp/test/404.php

さらに、404.phpを以下のように作成。
<?php
if (!isset($_SERVER['DOCUMENT_URI'])) {
    header("HTTP/1.0 404 Not Found");
    exit("404 Not Found");
}

$temp=preg_replace('/\/[^\/]+$/','/',$_SERVER['PATH_INFO']);
$temp=substr($_SERVER['DOCUMENT_URI'],strlen($temp));
$temp=preg_replace('/^([^\/]+)\/[\s\S]*?$/','$1',$temp);
$temp='./extra/fancyurls/'.$temp;

$_SERVER['PATH_INFO']=$_SERVER['REQUEST_URI']=$_SERVER['DOCUMENT_URI'];
unset($_SERVER['DOCUMENT_ARGS']);
unset($_SERVER['DOCUMENT_URI']);
unset($_SERVER['DOCUMENT_PATH_INFO']);

if (@file_exists($temp)) { include ($temp); }
else {
    header("HTTP/1.0 404 Not Found");
    exit("404 Not Found");
}
?>

あとは、Nucleusの設定をFancyURLにして、fancyurls.config.php と index.php を設定するだけ。ただし、GET は OK だが POST がまだできない。(追記:解決,下記コメント参照)

コメント

Katsumi (2006年3月31日 09:31:01)

コメントテスト。NP_PseudoFancyURL を作成し、POST メソッドにも対応した。

Katsumi (2006年3月31日 09:31:31)

もう一度テスト。これは、index.php?itemid=206 からの投稿。

画竜点睛 (2006年6月11日 21:26:52)

こんにちは画竜点睛です。FancyURLモードにするには、.htaccessと404.phpが必要なのはわかるのですが、fancyurls.config.php と index.php の設定の仕方がよくわかりません。nucleusのマニュアルに書いてある方法で良いのでしょうか?index.phpの引用符を削除して下さいって書いてあるんですけど引用符ってどれなんでしょうか?

コメント送信