2009-05-06 99 views
1

ich diese .htaccess-Datei haben, die nicht funktioniert, wenn ich navegate gotgage.local/Kategorie/DMS/der gages Teil davon ist nicht.htaccess Mühe

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

Aus Gründen der Prüfung die Datei category.php ist nur dumping $ _POST, $ _GET und $ _SERVER das ist, was ich sehe, wenn ich die Seite öffne.

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) 

Technisch ist die Umleitung jedoch arbeiten ich immer bin nicht die Vars die Seite unter dem Dumping ist die korrekte von der richtigen Seite, aber meine Vars sind nicht bestanden wird.

+0

Dies gehört auf serverfault.com! –

+0

IDK, ich debattierte das selbst, aber ich denke, das ist mehr Programmierung als .htaccess ist mehr Programmierung als Sysadmin. – UnkwnTech

Antwort

0

Ich bin nicht ganz sicher, dass dies das Problem ist, aber die Flaggen als "[rn]" setzen ist nicht gültig. Mehrere Flags sollten mit Kommas getrennt werden, so dass, wenn Sie versuchen, beide setzen die R und N Fahnen, sollte es [R,N]

+0

Dies machte keinen Unterschied, als ich den Beitrag aktualisiert, um zu sagen, die Umleitung geschieht, aber ich bekomme nicht die Vars – UnkwnTech

0

Es gibt ein paar Dinge, die etwas unklar sind:

1) Was das war soll Übereinstimmung mit dem regulären Ausdruck Teil:

(.*?) 

, die ein wenig redundant ist - unter der Annahme, dass man einfach alles passen zwischen den Schrägstrichen wollen, würde die folgende genügen:

(.*) 

2) Sie setzen ein Flag von 'rn', das nicht gültig zu sein scheint. Beispiel für gültige Flags sind:

obwohl ich nicht sicher bin, ob Sie wirklich R und N zusammen verwenden möchten.

+0

(. *?) Ist explizit nicht gierig. In diesem Fall bekomme ich mit seinem Spruch alles zwischen "Kategorie /" und dem ersten "/" Zeichen, das du danach siehst. Wenn Sie die gierige Version verwenden, die Sie empfohlen haben (. *), Dann könnten Sie möglicherweise zu viel greifen! Nehmen Sie das folgende Beispiel-URL "Kategorie/foo/bar /": Die nicht-gierige Version $ 1 = "foo" Der gierige Version hätte 1 $ = "foo/bar" Obwohl es in _may_ in Ordnung sein hätte In diesem Fall, um mit der gierigen Version davonzukommen, denke ich, dass das Nicht-Gierige klarer ist. –

+0

Ahh. Entschuldige die Formatierung. Ich wusste nicht, dass Kommentare Leerzeichen nicht behalten haben. Ich entschuldige mich. –

1

Nun, das Folgende funktionierte für mich. Es sieht so aus, als ob die führenden / und die [rn] Syntaxfehler für mich nicht gefallen hätten.

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

Hinweis: dass es wahrscheinlich [R,N] gewesen sowieso sollte, aber auch hier sind sie in diesem Fall nicht erforderlich.


RewriteRule Flags Documentation - Zeigt, warum Sie wahrscheinlich nicht R oder N, benutzen wollte, aber es sein kann, etwas, was wir nicht wissen.
RewriteRule Documentation - Scheint keine führende / in .htaccess RewriteRules anzuzeigen (wenn es eine RewriteBase gibt). Wie auch immer, probiere die Regel mit und ohne / aus, für mich funktionierte es nur ohne.

+0

Ich kopiert und eingefügt, um sicherzustellen, dass ich nichts falsch gemacht habe und ich immer noch das gleiche Problem habe ... – UnkwnTech

+0

Versuchen Sie, sich aufzubauen. Lass etwas arbeiten und mache es dann langsam, Wort für Wort, um zu sehen, was dein Problem verursacht. –