-4

重複の可能性:
すべてのリクエストをindex.phpにリダイレクトし、他のGETパラメーターを保持する方法は?
index.phpを介したすべてのphpリクエストの再ルーティング

/var/www/someapp/index.phpスクリプトがあるとします。では、Apacheサーバーに次のようなURLのすべてのリクエストを送信させるにはどうすればよいですか?

 http://somedomain.info/someapp/alpha
 http://somedomain.info/someapp/beta
 http://somedomain.info/someapp/beta/gamma
 http://somedomain.info/someapp/epsilon/omega

...まさにそのindex.phpスクリプトへ、そしてどのようにしてそのPHPスクリプト内からフルパスを取得できますか?

4

1 に答える 1

1

通常、これは書き換えルール (つまり、Apache の mod_rewrite) によって行われます。そのため、ホストの conf ファイルを変更するか、Web ルートの .htaccess ファイルに以下を適用する必要がある可能性のある Apache の場合 (ホスト構成でそのようなオーバーライドが許可されていると仮定)

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d    
RewriteRule ^someapp/(.*)$ /someapp/index.php?q=$1 [L]

これにより、リクエストが index.php ファイルにリダイレクトされ (ブラウザーのロケーション バーの URL は変更されません)、「someapp/」の後のクエリ部分がパラメーター「q」として GET 経由で渡され、スクリプトで使用できるようになります。 URI が実際のファイルまたはディレクトリと一致しないためです。

于 2012-08-15T22:27:02.500 に答える