php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 19.10.2006, 19:05  
Gast
 
Beiträge: n/a
Standard [Erledigt] RewriteRule will nich so richtig

Hallo Experten!

Habe bereits eine Menge Postings im Forum gelesen und bin trotzdem noch auf keinen grünen Zweig gekommen. Na vielleicht hab ich einfach nicht die richtigen Suchwörter verwendet

Also bitte nicht sauer sein wenn ähnliche Probleme schon öfters behandelt wurden. Und bitte bitte bitte um Hilfe:

Mein Problem:

Ein PHP-Skript wird folgendermaßen aufgerufen:
http://www.meinedomain.com/cat/4

aus dieser URL soll folgendes werden:
http://www.meinedomain.com/cat.php?id=4

Nun habe ich ein .htaccess Datei am Apache Server die das eigentlich machen sollte aber nicht tut:

Code:
RewriteEngine on
RewriteRule ^cat/([0-9]+)$ cat.php?id=$1
Wenn ich im aufgerufenen Skript die Variable "id" mit

Code:
$_GET['id']
auslesen möchte, so hat diese keinen Inhalt?!?

- das Skript läuft auf einem Apache Server
- mode_rewrite ist installiert und aktiviert
- registerglobals auf ON
- das Skript cat.php wird auch aufgerufen, nur der querystring geht verloren

Habe dieses wie folgt auch überprüft:

Code:
echo $_SERVER["QUERY_STRING"];
HIIIILLFFFEEE!

Danke für Eure Mühe!
  Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 19.10.2006, 19:35  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

bei mir klappt's

Welche PHP-Version hast du? Apache restartet? .htaccess im richtigen Verzeichnis, $_GET['id'] richtig abgeholt?
Zergling-new ist offline   Mit Zitat antworten
Alt 19.10.2006, 19:51  
Gast
 
Beiträge: n/a
Standard

@Zergling

- PHP-Version 4.4.4
- .htaccess ist im Root-Verzeichnis wo auch alle scripte abgelegt sind
- Neustart kann ich nicht machen, ist nicht mein Server sondern ein Webhoster bei dem ich einen Shared Server habe

$_GET['id'] richtig abgeholt?

$categorie = $_GET['id']; //gleich am Anfang nach den includes als erster Code
  Mit Zitat antworten
Alt 19.10.2006, 20:30  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Gut Neustart sollte auch nicht nötig sein bei htaccess, war ein fehlerhafter Hinweis von mir.

Was ist denn für eine "AllowOverride" Direktive für deine Domain eingestellt, darfst du überhaupt mit htaccess Apache-Einstellungen überschreiben?

Schreib zum Test einfach mal Mist in die ".htaccess", dann sollte ein Server-500 Fehler kommen. Wenn nicht wird deine ".htaccess" einfach nicht beachtet => du hast Pech gehabt
Zergling-new ist offline   Mit Zitat antworten
Alt 19.10.2006, 21:31  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Zergling
Schreib zum Test einfach mal Mist in die ".htaccess", dann sollte ein Server-500 Fehler kommen. Wenn nicht wird deine ".htaccess" einfach nicht beachtet => du hast Pech gehabt
hmm, das hatte ich schon unabsichtlich probiert und es kam ein Server 500 Fehler als ich einen Syntaxfehler hatte.

ist eine echt verzwickte sache
  Mit Zitat antworten
Alt 19.10.2006, 23:34  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Die RewriteRule ist so aber richtig, ich hab den Text kopiert und bei mir bei localhost ausprobiert. Mehr fällt mir jetzt aber auch nicht ein, zumals ja eine simple RewriteRule ist und nix verzwicktes.

Lass mich wissen, wenn du rausgefunden hast was es war

Edit: Hast du davor irgendwelche anderen RewriteRules stehen?
Zergling-new ist offline   Mit Zitat antworten
Alt 20.10.2006, 08:09  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von Zergling
Edit: Hast du davor irgendwelche anderen RewriteRules stehen?
ja, aber auch nichts ausgefallenes. Hier mal die gesamte Datei, vielleicht ist ja der Hund wirklich noch wo anders begraben:

Code:
RewriteEngine on
RewriteRule ^tor/([0-9]+)$ tor.php?id=$1
RewriteRule ^det/([0-9]+)$ det.php?id=$1
RewriteRule ^rep/([0-9]+)$ rep.php?id=$1
RewriteRule ^get/([0-9]+)/(.*)$ get.php?id=$1&filename=$2
RewriteRule ^q/([0-9]+)$ q.php?id=$1
RewriteRule ^q/(.*)$ q.php?title=$1
RewriteRule ^cat/([0-9]+)$ cat.php?id=$1
RewriteRule ^cat/([0-9]+)/$ cat.php?id=$1
RewriteRule ^cat/$ cat.php
RewriteRule ^cat-list/([0-9]+)$ cat-list.php?id=$1
RewriteRule ^cat-list/([0-9]+)/([a-z]+)$ cat-list.php?id=$1&sort=$2
RewriteRule ^sub/([0-9]+)$ sub.php?id=$1
RewriteRule ^sub/([0-9]+)/([a-z]+)$ sub.php?id=$1&sort=$2
RewriteRule ^upload/$ upload.php
RewriteRule ^search/$ search.php
RewriteRule ^about/$ about.php
RewriteRule ^privacy/$ privacy.php
RewriteRule ^rss.xml$ rss.php
RewriteRule ^stats/$ stats.php
RewriteRule ^faq/$ faq.php
RewriteRule ^yesterday/$ yesterday.php
RewriteRule ^yesterday/([a-z]+)$ yesterday.php?sort=$1
RewriteRule ^([a-z]+)$ index.php?sort=$1
  Mit Zitat antworten
Alt 20.10.2006, 10:56  
Gast
 
Beiträge: n/a
Standard

Hallo,

und danke nochmals für die Hilfe. Der Fehler ist bereits behoben. Ich möchte hier nur noch schnell bekannt geben woran es lag, damit anderen mit dem selben Problem vielleicht geholfen wird:

Am Apache Server gibt es eine Einstellung die sich multiviews nennt. Wenn diese aktiviert ist, dann versucht der Server automatisch Urls wie http://www.meinedomain.com/cat in http://www.meinedomain.com/cat.php umzuwandeln um die Seite auch ohne das .php anzeigen zu können.
Dieser Versuch wird vom Server unternommen, noch bevor er die .htaccess aufruft. Dies hat in meinem Fall dazu geführt, dass die RewriteRules nicht mehr richtig ausgeführt wurden.

Abhilfe schaffte ein kleine Änderung der .htaccess wo als erste Zeile das multiviews deaktiviert wird:

Code:
Options -MultiViews
RewriteEngine on
RewriteRule ^tor/([0-9]+)$ tor.php?id=$1
RewriteRule ^det/([0-9]+)$ det.php?id=$1
RewriteRule ^rep/([0-9]+)$ rep.php?id=$1
RewriteRule ^get/([0-9]+)/(.*)$ get.php?id=$1&filename=$2
.
.
.
Danke nochmals!
  Mit Zitat antworten
Alt 20.10.2006, 11:17  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Wieder um eine Erfahrung reicher
Zergling-new ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP richtig lernen! TeazY PHP Tipps 2008 5 01.02.2008 21:50
RewriteRule Frage mokus Server, Hosting und Workstations 5 30.04.2007 15:12
/kategorie auf / weiterleiten htaccess ypsie PHP Tipps 2006 9 13.10.2006 14:47
[Erledigt] Modularisierung: Wie macht man es richtig? PHP-Fortgeschrittene 1 12.03.2006 16:00
[Erledigt] RewriteRule klappt einfach nicht vollständig Server, Hosting und Workstations 3 03.12.2005 23:23
[Erledigt] Lieg ich da richtig? Datenbanken 4 31.08.2005 13:21
PHP funktioniert nicht richtig?! PHP Tipps 2005-2 26 11.06.2005 09:05
Error 500 bei .htaccess test022 PHP Tipps 2005 18 10.02.2005 17:11
Variable wird nicht richtig übergeben PHP Tipps 2005 17 16.01.2005 16:51
RewriteRule im PHP Modul PHP Tipps 2004 1 11.09.2004 12:42
[Erledigt] imap_body RICHTIG ausgeben (mit allen Sonderzeichen usw.) PHP-Fortgeschrittene 3 08.09.2004 02:33
[Erledigt] Perl richtig installiert oder falsch ? testen aber wie ? c01001 Server, Hosting und Workstations 2 31.08.2004 22:37
[Erledigt] RewriteRule??? Server, Hosting und Workstations 2 20.08.2004 10:21
Formular, welches prüft, ob eingegebene Antwort richtig.... PHP Tipps 2004 10 15.08.2004 22:18
[Erledigt] Mime-Type über RewriteRule setzen Server, Hosting und Workstations 1 17.06.2004 04:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
rewriterule \\.php?id=(.*), index.php?cat= per htaccess überschreiben, rewriterule nach php? id suchen, cat.php?id, rewriterule ^/([0-9] ), rewriterule id, rewrite rule faq, php rewriterule auslesen, htaccess wo, rewrite rule *.php auf *.php, rewriterule suchwort, rewriterule ^?id=(.*)$, rewriterule php in rss, rewriterule \wenn nicht\, rewriterule ?q=, htaccess rewriterule ^(.*)/(.*)/$, rewriterule ^([0-9]{4})/(.*)$, rewriterule ^(.*)/([0-9]*)-([0-9]*)-([0-9]*)/.*\\.html$, was ist rewriterule .*, multiviews rewrite rule

Alle Zeitangaben in WEZ +2. Es ist jetzt 21:22 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.