PHPでURLルーティングを実装する方法。PHPでURLルーティングを実装する方法
答えて
Apacheを使用する場合は、mod_rewriteを介して、URLルーティングを行うことができます。たとえば。
小さな例:
http://yoursite.com/main.php?dir=dir1&path=path2
より多くの例hereによって提供
http://yoursite.com/dir1/path1
のような任意の要求を持っています
RewriteEngine On
RewriteRule ^(dir1)/?(path2)? main.php?dir=$1&path=$2
。
他の代替は、すべての要求は、単一のPHPファイル
RewriteEngine On
RewriteRule (.*) main.php?request=$1
にリダイレクトして、あなたには、いくつかのことで一致している正規表現のセットを持っていることによってsimilar approachを、使用することができますコードでそれをしなければなりませんコードを作成し、header()または内部でリダイレクトします。
まず、Apacheの(あなたのWebサーバーはApacheだと思います)mod_rewrite
が有効になっている必要があります。
次に、すべてをindex.phpページにリダイレクトするRewriteRuleを作成する必要があります。このような
何かが行うことができます:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php
をそれはindex.phpに存在しないファイルへのすべてのリクエストをリダイレクトします。つまり、要求されたURLがwww.example.com/blahの場合、実際に呼び出されるのはindex.phpです。それについて
は、ここに助けることができるリンクのカップル:
そこで、このページではに応じて、表示する必要があるかを決定する必要がありますどの初期URLが呼び出されたか、またはどのパラメータが受信されたかを示します。
これは、たとえば、Design Pattern Front Controllerを使用して行うことができます。たとえば、ほとんどの現代のPHPフレームワークで実装されています。
この件に関する多くの質問がありました。それらのいくつか(およびそれらの回答)がおそらくあなたを助けるかもしれません。
これは、この質問の標準的な答えになるはずです。これはApache上で実行されているサーバー側の言語で動作しますが、とにかく書き換え規則の束は特に持続可能ではありません。 – WCWedin
http:// stackoverflow。com/questions/1316021/how-to-use-url-routing-in-php – cherouvim
可能な複製:http://stackoverflow.com/questions/125677/php-application-url-routing その質問を見てみてください。 – Macha
事実、triplicate =) – Zed