基本的にこれを行うには、次の 2 つの方法があります。
mod_rewrite を使用した .htaccess ルート
ルート フォルダーに .htaccess というファイルを追加し、次のようなものを追加します。
RewriteEngine on
RewriteRule ^/Some-text-goes-here/([0-9]+)$ /picture.php?id=$1
これにより、このフォルダーの mod_rewrite を有効にするように Apache に指示し、正規表現に一致する URL を要求された場合、エンド ユーザーに表示されることなく、必要な URL に内部的に書き換えます。簡単ですが柔軟性に欠けるので、さらにパワーが必要な場合は次のようにします。
PHPルート
代わりに .htaccess に以下を入れてください:
FallbackResource index.php
これにより、サイトで通常は見つけられないすべてのファイルに対して index.php を実行するように指示されます。そこで、たとえば次のことができます。
$path = ltrim($_SERVER['REQUEST_URI'], '/'); // Trim leading slash(es)
$elements = explode('/', $path); // Split path on slashes
if(count($elements) == 0) // No path elements means home
ShowHomepage();
else switch(array_shift($elements)) // Pop off first item and switch
{
case 'Some-text-goes-here':
ShowPicture($elements); // passes rest of parameters to internal function
break;
case 'more':
...
default:
header('HTTP/1.1 404 Not Found');
Show404Error();
}
これは、URL、構成、データベースに依存する URL などを解析する際の柔軟性がはるかに高いため、大規模なサイトや CMS システムが行う方法です。
***** PHP による URL 書き換えからこのコンテンツをコピーします**