ウェブサイトは、.htaccess
ファイルにアクセスできないウェブホストで実行されています。ただし、ユーザーフレンドリーなURLのURL書き換えを行いたい。
例えば元のURL
www.example.com/file?q=name
予想されるURL
www.example.com/file/name
他の人が言ったように、_/index.php/Nice/looking/url
_のようなリンクを使用してください。
URLの途中にある「index.php」は少し奇妙に見えるかもしれませんが、.htaccessなしで見栄えを良くすることはできないと思います
それ以外の場合は、URLに_/index.php
_を含めずにURLの書き換えを処理できるように、任意のURLを/index.phpにリダイレクトするようにホスティング業者に依頼できます。
次に、正規表現の一致を使用して、含めるファイルを検出できます。preg_match('@[/]{1}([a-zA-Z0-9]+)@', $_SERVER["PATH_INFO"], $matches)
($ matchesには、配列内のURLのすべての「部分」が含まれます)
ファイルを含める際は注意してください。ホワイトリストを使用して、内部ファイルを誰もロードできないようにします。
alix Axelが提案したように、
www.example.com/index.php/file/name
次に、$_SERVER['REQUEST_URI']
を使用してURLを処理します。
最善の策は、次のようなURLを使用することです。
www.example.com/index.php/file/name
ただし、PHPコードを書き直す必要があります。
Apacheサーバーがあり、 AcceptPathInfo が有効になっている場合は、作成したURLを使用できます。 /file/name
のリクエストは、/file
が通常のファイルの場合、PATH_INFOの値が/name
で自動的に/file
に書き換えられます。