2009-05-06 14 views
1

私は/カテゴリ/ゲージをgotgage.localするnavegateとき/本のゲージ部分はテストのためにhtaccessのトラブル

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

を渡されていないが、動作していない、この.htaccessファイルを、持っています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) 

技術的にリダイレクトしかし、私はそれ以下のページをダンプしているVARSを取得していない午前働いているが、正しいページから正しいですが、私のVARSは渡されていません。

+0

これはserverfault.comに属しています! –

+0

IDK、私は自分自身で議論しましたが、私はこれがもっとプログラミングだと思う。 – UnkwnTech

答えて

0

私はこれが問題であるとは完全には分かりませんが、フラグを "[rn]"とすることは無効です。あなたは両方のRN旗を置くしようとしているならば、それは[R,N]

+0

リダイレクトが起こっていると言う投稿を更新したが、varsを取​​得していないと言っても差はありませんでした。 – UnkwnTech

0

やや不明確であるカップルの事がありますする必要がありますので、複数のフラグは、カンマで区切る必要があります:

1)は何をしていました正規表現の部分との意図が一致:

(.*?) 

少し冗長である - 以下は十分であろう、あなたは、単にスラッシュの間に何かを一致させたいと仮定:

(.*) 

2) 'rn'というフラグを設定しますが、有効ではありません。有効なフラグの例は、

[R] 
[N] 
[R,N] 

ですが、本当にRとNを一緒に使用するかどうかはわかりません。

+0

(。*?)は明らかに非貪欲です。この場合、その言葉は、「カテゴリ/」とその後に表示される最初の「/」文字の間のすべてを取得します。あなたがお勧めした欲張りバージョン(。*)を使用しているなら、あなたは潜在的にあまりにも多くをつかむことができます! は、次の例のURLを取る「カテゴリ/ fooの/バー/」: は非貪欲バージョンは$ 1 =「foo」という を持つことになり、それはで大丈夫_may_が貪欲なバージョンが$ 1 =「fooの/バー」 を持っているでしょうこの場合は欲張りな版で逃げるために、私は非貪欲なものはもっとはっきりしていると思います。 –

+0

ああ。フォーマットについてお詫び申し上げます。私は、コメントが空白を保持していなかったことを知らなかった。謝罪します。 –

1

まあ、以下は私のために働いた。それは、先導/[rn]が私のために構文エラーを投げたように見えなかったようです。

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

注:それはおそらくとにかく[R,N]されている必要がありますが、再び、彼らはこの場合に必要とされていないこと。


RewriteRule Flags Documentationは - あなたはおそらくRまたはNを使用したくなかった理由を示しますが、我々が知らない何かがあるかもしれません。
RewriteRule Documentation - .htaccess RewriteRules(RewriteBaseがある場合)に先行なしを示すと思われます(/)。いずれにしても、/の有無にかかわらずルールを試してください。

+0

私はコピーして貼り付けて何も入力していないことを確認しましたが、私はまだ同じ問題を抱えています。 – UnkwnTech

+0

それまで構築してみてください。何か問題が発生しているかどうかを確認するために、何か作業をしてからゆっくりと複雑にします。 –