1

gotgage.local/category/gages/ に移動すると、この .htaccess ファイルが機能しません。このファイルのゲージ部分が渡されていません。

RewriteEngine On
RewriteRule     ^/category/(.*?)/$  category.php?p=$1 [rn]

テストのために、category.php ファイルは $_POST、$_GET、および $_SERVER をダンプするだけです。これは、ページを開いたときに表示されるものです。

GET
Array ( )
POST
Array ( ) 
SERVER
Array (
    [HTTP_USER_AGENT] => Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.19 (KHTML, like Gecko) Chrome/1.0.154.59 Safari/525.19
    [HTTP_ACCEPT_ENCODING] => gzip,deflate,bzip2,sdch
    [HTTP_ACCEPT] => text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
    [HTTP_CACHE_CONTROL] => max-age=0
    [HTTP_ACCEPT_LANGUAGE] => en-US,en
    [HTTP_ACCEPT_CHARSET] => ISO-8859-1,*,utf-8
    [HTTP_HOST] => gotgage.local
    [HTTP_CONNECTION] => Keep-Alive
    [PATH] => /usr/local/bin:/usr/bin:/bin
    [SERVER_SIGNATURE] =>  Apache/2.2.9 (Ubuntu) PHP/5.2.6-2ubuntu4.2 with Suhosin-Patch Server at gotgage.local Port 80


    [SERVER_SOFTWARE] => Apache/2.2.9 (Ubuntu) PHP/5.2.6-2ubuntu4.2 with Suhosin-Patch
    [SERVER_NAME] => gotgage.local
    [SERVER_ADDR] => 192.168.0.180
    [SERVER_PORT] => 80
    [REMOTE_ADDR] => 192.168.0.196
    [DOCUMENT_ROOT] => /home/gotgage/www/
    [SERVER_ADMIN] => [no address given]
    [SCRIPT_FILENAME] => /home/gotgage/www/category.php
    [REMOTE_PORT] => 56793
    [GATEWAY_INTERFACE] => CGI/1.1
    [SERVER_PROTOCOL] => HTTP/1.1
    [REQUEST_METHOD] => GET
    [QUERY_STRING] => 
    [REQUEST_URI] => /category/gages/
    [SCRIPT_NAME] => /category.php
    [PATH_INFO] => /gages/
    [PATH_TRANSLATED] => /home/gotgage/www/gages/
    [PHP_SELF] => /category.php/gages/
    [REQUEST_TIME] => 1241579116
    [argv] => Array
        (
        )

    [argc] => 0 )

技術的にはリダイレクトは機能していますが、ダンプしている下のページが正しいページから正しい変数を取得していませんが、変数が渡されていません。

4

3 に答える 3

1

さて、以下は私のために働いた。/先頭と[rn]スローされた構文エラーが気に入らなかったようです。

RewriteEngine On
RewriteRule ^category/(.*?)/$ category.php?p=$1

注:とにかくそうあるべきだったはず[R,N]ですが、この場合も必要ありません。


RewriteRule Flags Documentation-Rおそらくまたはを使用したくない理由を示していますNが、私たちが知らないことがあるかもしれません。
RewriteRuleドキュメント-.htaccessRewriteRulesに先頭がないことを示している/ようです(RewriteBaseがある場合)。いずれにせよ、ルールがある場合とない場合で試してみてください/。私にとっては、ルールがない場合にのみ機能しました。

于 2009-05-06T03:29:33.483 に答える
0

これが問題であるかどうかは完全にはわかりませんが、フラグを「[rn]」として設定することは無効です。R複数のフラグはコンマで区切る必要があるため、とNフラグの両方を配置しようとしている場合は、[R,N]

于 2009-05-06T03:26:39.560 に答える
0

やや不明確なことがいくつかあります。

1)正規表現部分との意図された一致は何でしたか:

(.*?)

これは少し冗長です。スラッシュの間の何かを単純に一致させたいと仮定すると、次のようになります。

(.*)

2)有効ではないように見える「rn」のフラグを設定しました。有効なフラグの例は次のとおりです。

[R]
[N]
[R,N]

ただし、RとNを一緒に使用したいかどうかはわかりません。

于 2009-05-06T03:28:27.073 に答える