PC系,Web系,映像系とか。PC無しじゃ生きていけない!?

最新記事

PATH_INFOで拡張子を隠す

ファイル名をディレクトリ名のように
PATH_INFOによるファイル名をディレクトリ名のように見せる方法を紹介します。

通常、以下のような引数を用いてスクリプトに動的な振る舞いを行います。

http://rakuto.net/browse.php?page=path_info

rakutoネットではPATH_INFOを用いて以下のように引数をPATHに組み込んでいます。

http://rakuto.net/browse/path_info/

.htaccess等のHTTPサーバ設定
## PathInfoを有効
AcceptPathInfo On

## HTTPモジュールの場合

ForceType application/x-httpd-php

## CGIの場合

ForceType application/x-httpd-cgi

FilesMatchによりbrowseというファイルのForceTypeがPHPスクリプトである
と宣言しています。
詳しくはApacheのマニュアルを参照してください。

スクリプト側の処理
/**
* パスインフォからページ名を取得
* CGIの場合は$_SERVER['ORIG_PATH_INFO']になります。
*/
$path_info = empty($_SERVER['PATH_INFO'])?”:$_SERVER['PATH_INFO'];

$args = explode(‘/’,$path_info);
// PATH_INFOには’/'から始まるpath情報が入る為、引数は1番目になります。
$page = empty($args[1])?’page’:$args[1];
?>

PATH_INFOを使ったFront Controller
/* パスインフォからページ名を取得 */
$path_info = empty($_SERVER['PATH_INFO'])?”:$_SERVER['PATH_INFO'];

$args = explode(‘/’,$path_info);
$page = empty($args[1])?’tree’:$args[1];

$modules = array(
‘tree’,
‘browse’,
‘post’,
‘search’,
‘summary’
);

/* 不正アクセスがないかチェック */
if (!in_array($page,$module)) {
$page = ‘tree’;
}

/* モジュールの読み込み */
include_once $page.’.php’;
?>

コメント (0)

http://hoge.jp/URLでURLを取得する

自分メモです。。。

時々見かける

http://hoge.jp/http://www.google.co.jp

というように、サイト名+URLという指定でURLを取得する方法。

PHPで取得します。

まず、.htaccessを下記のように記述します。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

index.phpで、

<?php
$url = $_SERVER['REQUEST_URI'];
$url = substr( $url, 1,strlen($url)-1);
echo $url."<br>";
と、なります。
先頭にスラッシュ/が入っていますので一文字削ります。

コメント (0)