クリーンURLを取得する方法はたくさんあります。 Laravel、CraftCMSなどのような最新のフレームワークは、それをすぐにサポートし、Webサーバーの設定を更新するためのドキュメントを表示します。
ライブラリーなしで実行したい場合は、Webサーバーがurl引数を1つのスラッグに転送して、PHPアプリケーションに渡すだけです。
その書き換えブロックの一例は、nginxのようになります:
location @app {
rewrite ^/(.*)$ /?u=$1;
}
これは、ご使用の構成に応じて様々な方法で達成することができます。
PHPアプリケーションでは、基本的にちょうど$_GET['u']
をキャッチし、それに応じて解析する必要があります。例えば
あなたが$incoming_request = explode("/", $_GET['u'])
を行うと、は、「ユーザー」が含まれて見れば、あなたはあなたが、その後のあなたのチェックを実行することができます$incoming_request[1]
でユーザーIDを送信しようとしていると仮定することができます。
これはすべて擬似コードですが、正しい方向に向けるのに十分なコンセプトでなければなりません。ここで
はPHPで要求を処理する例を示します。
// allowed page options via URL | no arguments defaults to landing
$url_access_pagelist = [
"user",
];
//control all incoming url requests
if(!isset($_GET['u'])) {
//URL has no path, set page landing
$current_page = 'landing';
}
else {
// give non empty GET data a variable
$incoming_request = explode("/", strtolower($_GET['u']));
// make sure incoming request is in the pagelist array) | switch() through page options as they exist
if(in_array($incoming_request[0], $url_access_pagelist)){
switch($incoming_request[0]) {
case "user":
$current_page = "user";
if(isset($incoming_request[1])) {
// this should be the user id
echo $incoming_request[0] . $incoming_request[1];
}
break;
}
}
}