ほぼ REST インターフェースを作成していますが、ドキュメントを直接提供したいので、完全ではありません。
次のような構造を提案します。
http://example.com/docs/
: アプリケーションのルート レベル (アプリに関する情報を表示します)
http://example.com/docs/view/read_this
: 「read_this」という名前のドキュメントを表示します
http://example.com/docs/search/keyword
:キーワード「keyword」を含む文書の一覧を表示
「ビュー」と「検索」の親「フォルダー」を追加すると、衝突が防止されます。ドキュメント ビュー スキーマをそのままにして (検索スキーマをそのままにしておくと)、特別な用語と衝突するためhttp://example.com/docs/read_this
、ドキュメントに名前を付けることはできません。また、スキーマで実行できる編集についても言及しました。search
search
http://example.com/edit/read_this
これらすべての URI を解決するには、Apache 構成で Mod_Rewrite を使用して、それらが PHP スクリプトを指すようにする必要があります。
編集:.htaccess
必要なPHPリンクは次のとおりです
.htaccess:
docs
これは、フォルダーのルートに次のように配置されindex.php
ます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^([a-z]+)/([A-Za-z0-9_-]+)/?$ index.php?action=$1&target=$2 [QSA,L]
</IfModule>
これは技術的には、人々が URL を入力しhttp://example.com/docs/view/read_this
たりhttp://example.com/docs/index.php?action=view&target=read_this
、同じ結果を得ることができることを意味します。
index.php:
<?php
$action = (isset($_GET['action']) && $_GET['action'] != '')? $_GET['action'] : false;
$target = (isset($_GET['target']) && $_GET['target'] != '')? $_GET['target'] : false;
switch($action) {
case 'view':
viewDoc($target); // Do your view logic here
break;
case 'search':
doSearch($target); // Do your search logic here
break;
case 'foobar':
// Add new functionality here
break;
default:
errorOut('No such action as '.$action);
break;
}
?>