サーバーがリダイレクトなしでディレクトリ名に基づいて特定のPHPページを返すようにしたい。例えば:
http://www.example.com/home
次と同じ結果を返す必要があります。
http://www.example.com/index.php?page=home
ただし、アドレスをリダイレクトするべきではありません
'.htaccess'という特別なファイルを作成し、それをWebアプリケーションのルートディレクトリに配置する必要があります。ファイルの内容は次のようになります。
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^/home$ /index.php?page=home [L]
次に、Apache(httpd.conf、httpd-vhosts.conf)を構成して、Webアプリケーションがその.htaccess構成ファイルを使用できるようにします。
<VirtualHost 127.0.0.1:80>
DocumentRoot "/path/to/your/webapp"
ServerName localhost
<Directory "/path/to/your/webapp">
AllowOverride All
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
これは良い読み物です。
PHPはリダイレクトなしでこれを行うことはできませんが、解決策はたくさんあります。
apache(.htaccess)でmod_rewriteを使用する
RewriteEngine on
RewriteRule ^home$ /index.php?page=home
もう1つは、index.phpを/ homeに追加することです。この機能は、ドキュメントルートindex.phpを含めることだけです。
(私のお気に入りの)CodeIngniterやZendのようなフレームワークを見てください。ただし、それに限定されたり、独自のルーターを構築して車輪の再発明を試みたりすることはできません。
Apacheを使用している場合は、htaccessスクリプトを調べることができます。グーグル検索を通じて利用可能なオプションがたくさんあります