10

私はこの.htaccessファイルを持っています:

RewriteEngine On

RewriteRule ^hello$ goodbye

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]

ですべてのリクエストを受け取っていますが、 を要求したときindex.phpに取得し、PHP から印刷するときに受け取ることを期待していました。hellohellogoodbye$_SERVER['REQUEST_URI']

つまり$_SERVER['REQUEST_URI']、 RewriteRule の参照に一致する前に URL が既に書き換えられている場合でも、不変のように見えますindex.php。この値を変更する方法はありますか?

PHP ファイルを変更せずに、URL 前処理の薄くて単純なレイヤーを既存のコードに追加するために、これを実行したいと考えています。だから私はの中に固執しようとしてい.htaccessます。

4

1 に答える 1

8

まず第一に、最初のルールにフラグを立てLたりフラグを立てたりしないというミスを犯しました。PTコードは次のようになります。

RewriteRule ^hello$ goodbye [PT]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteRule ^ index.php [L]

そのコードが存在したら、次の変数にアクセスしますindex.php

$_SERVER["REDIRECT_URL"]

これには値があります:/goodbye

編集

ホストで有効にしている場合mod_proxy、最初のルールを次のように設定できます。

RewriteRule ^hello$ /goodbye [P]

そして、次のようになります。$_SERVER["REQUEST_URI"]=/goodbye

于 2013-09-04T15:45:59.047 に答える