php.de

Zurück   php.de > Webentwicklung > Server, Hosting und Workstations

Server, Hosting und Workstations Server-Konfigurationsdateien (.htaccess/httpd.conf) und Arbeiten auf Serverebene

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 13.02.2012, 18:07  
Benutzer
 
Registriert seit: 11.11.2009
Beiträge: 33
PHP-Kenntnisse:
Anfänger
the_fan befindet sich auf einem aufstrebenden Ast
Standard htaccess, mod rewrite, url kürzen funktioniert nicht

Hallo,

habe folgendes Problem:

Code:
RewriteEngine On
RewriteBase /
RewriteRule ^ http://www.google.de [R,L]
Rufe ich meine Seite auf, werde ich zu Google weitergeleitet.

Code:
RewriteEngine On
RewriteBase /
RewriteRule ^/site/(.*)\.html$ /?site=$1  [R,L]
Rufe ich meine Seite mit GET-Parametern auf, passiert nichts.
www.example.com/?site=home
bleibt
www.example.com/?site=home

Woran liegt das? Ich verstehe es nicht.

Kann jemand helfen?
Vielen Dank vorab!
the_fan ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 14.02.2012, 01:24  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.994
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Und was soll die zweite Code-Box? Jetzt noch mal deutlich bitte.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist gerade online   Mit Zitat antworten
Alt 14.02.2012, 01:36  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Mit der Rewrite-Rule erreichst du, dass bei Aufruf von example.com/site/home.html nach example.com?site=home weitergeleitet wird, nicht umgekehrt.

Ich vermute mal, dass die RewriteRule eigentlich nicht als Weiterleitung [R] gedacht ist und du zusätzlich erreichen willst dass man beim direkten Aufruf von ?site=home zur schönen URL weitergeleitet werden soll, richtig? Das musst du allerdings anders realisieren, da in RewriteRule der Query String (alles nach dem Fragezeichen) nicht verarbeitet wird. Also entweder skriptseitig oder mit RewriteCond %{QUERY_STRING} $pattern
fab ist offline   Mit Zitat antworten
Alt 14.02.2012, 08:13  
Benutzer
 
Registriert seit: 11.11.2009
Beiträge: 33
PHP-Kenntnisse:
Anfänger
the_fan befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von fab Beitrag anzeigen
Mit der Rewrite-Rule erreichst du, dass bei Aufruf von example.com/site/home.html nach example.com?site=home weitergeleitet wird, nicht umgekehrt.
Komischerweise steht auf so vielen "Tutorial"-Seiten, dass es, wie ich es oben versucht habe, funktionieren soll. Sogar sog. mod_rewrite Generatoren für "schöne" URLs geben das genau so aus.

Zitat:
Zitat von fab Beitrag anzeigen
Ich vermute mal, dass die RewriteRule eigentlich nicht als Weiterleitung [R] gedacht ist und du zusätzlich erreichen willst dass man beim direkten Aufruf von ?site=home zur schönen URL weitergeleitet werden soll, richtig?
Richtig. Allerdings möchte ich es nicht zusätzlich erreichen, sondern einzigst!

Zitat:
Zitat von fab Beitrag anzeigen
Das musst du allerdings anders realisieren, da in RewriteRule der Query String (alles nach dem Fragezeichen) nicht verarbeitet wird. Also entweder skriptseitig oder mit RewriteCond %{QUERY_STRING} $pattern
Okay, dann bin ich schon mal ein ganzes Stück weiter.
Vielen Dank dafür! Dann lese ich mich da nun mal rein.

Gruß
the_fan ist offline   Mit Zitat antworten
Alt 14.02.2012, 09:36  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Dann lies dich mal ein, du hast nämlich noch nicht verstanden wie mod_rewrite funktioniert

Ohne den [R] Parameter sieht das so aus (vereinfacht):

Code:
Browsereingabe: nice-url.html 
          |
          v
mod_rewrite: Umwandlung nach Pattern
          |
          v
Aufruf wird gehandhabt ALS OB ?site=nice-url eingegeben worden wäre, der Client bekommt davon nichts mit
Und mit [R] Parameter:

Code:
Browsereingabe: nice-url.html 
          |
          v
mod_rewrite: Umwandlung nach Pattern, sende Redirect Header
          |
          v
Browser nimmt Weiterleitung auf ?site=nice-url vor
Eine umgekehrte Weiterleitung macht nur Sinn, wenn der Server mit dem daraus resultierenden Aufruf von nice-url.html auch etwas anfangen kann.
fab ist offline   Mit Zitat antworten
Alt 14.02.2012, 10:06  
Benutzer
 
Registriert seit: 11.11.2009
Beiträge: 33
PHP-Kenntnisse:
Anfänger
the_fan befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

danke für die Erläuterung!

Bisher bin ich nun soweit, dass ich durch Eingabe von
www.example.com/nice-url.html
auf
www.example.com/index.php?site=nice-url
"weitergeleitet" werde. Weitergeleitet stimmt hier ja nicht mehr, da ich den [R] Parameter nicht angegeben habe.

Code:
RewriteRule ^([a-zA-Z]+).html$ index.php?site=$1
Das bedeutet also, dass ich meine Seite nun mit schöneren URLs aufrufen kann. Etappenziel erreicht. Ob der Fortschritt jetzt schon was bringt kann ich nicht beurteilen.

Was mir jetzt widerfährt ist ein ganz anderes Problem - mag vielleicht mit meiner mangelnden Kenntnis zusammenhängen, eventuell gibt es aber auch eine ganz andere Erklärung.

Code:
RewriteRule ^([a-zA-Z]+)-([1-9]{1,3}+)$ index.php?site=$1&id=$2
Funktioniert einwandfrei. Ich kann mir sogar in der PHP-Datei nach Aufruf mit einer URL a la www.example-com/eineseite-1 die id durch den GET-Parameter ausgeben lassen. Angezeigt wird, wie erwartet, eine 1.

Code:
RewriteRule ^([a-zA-Z]+)-([1-9]{1,2}+)$ index.php?site=$1&page=$2
Hier funktioniert das allerdings nicht. Wieso auch immer. In der GET-Variablen "page" steht nichts, es wird mir nichts angezeigt.
the_fan ist offline   Mit Zitat antworten
Alt 14.02.2012, 10:14  
fab
Erfahrener Benutzer
 
Benutzerbild von fab
 
Registriert seit: 28.07.2010
Beiträge: 2.308
PHP-Kenntnisse:
Fortgeschritten
fab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblickfab ist ein Lichtblick
Standard

Ich sehe auf den ersten Blick nicht, woran das liegt. Aber was willst du überhaupt mit {1,3}+ und {1,2}+ erreichen? Das ist in der Form eine überflüssige doppelte Quantifizierung, beides kann theoretisch eine beliebige Anzahl von Zeichen matchen.
fab ist offline   Mit Zitat antworten
Alt 14.02.2012, 10:34  
Benutzer
 
Registriert seit: 11.11.2009
Beiträge: 33
PHP-Kenntnisse:
Anfänger
the_fan befindet sich auf einem aufstrebenden Ast
Standard

Ouha, da hast du Recht, + steht quasi für {1,}. Danke dafür. Irgendwann ist man einfach blind.
Problem besteht aber weiterhin, leider.
the_fan ist offline   Mit Zitat antworten
Alt 14.02.2012, 10:40  
Erfahrener Benutzer
 
Registriert seit: 28.11.2011
Beiträge: 115
PHP-Kenntnisse:
Fortgeschritten
luzip befindet sich auf einem aufstrebenden Ast
Standard

Funktioniert es denn, wenn Du statt [1-9] nur den . verwendest?
Damit wird jedes Zeichen aktzeptiert und nicht nur Ziffern von 1-9.
luzip ist offline   Mit Zitat antworten
Alt 14.02.2012, 10:45  
Benutzer
 
Registriert seit: 11.11.2009
Beiträge: 33
PHP-Kenntnisse:
Anfänger
the_fan befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von luzip Beitrag anzeigen
Funktioniert es denn, wenn Du statt [1-9] nur den . verwendest?
Damit wird jedes Zeichen aktzeptiert und nicht nur Ziffern von 1-9.
Nein, leider nicht.

Ihr könnt es euch ja mal kurz anschauen:
feuerwehr-oberwalluf.de/?site=guestbook&page=1
(Hier werden die EInträge angezeigt)
und
feuerwehr-oberwalluf.de/guestbook-1
(hier nicht)
the_fan 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
[Erledigt] mod rewrite und existierendes Verzeichnis Koala Server, Hosting und Workstations 2 31.01.2011 13:09
inhalt eines problem - arrays kürzen bzw. einer variablen zuweisen geuloth PHP Tipps 2010 6 27.02.2010 18:05
htaccess allow u. deny heohni Server, Hosting und Workstations 1 16.10.2009 19:38
[Erledigt] Umlaute ersetzen funktioniert nicht richtig BlackSpirit PHP Tipps 2009 19 20.04.2009 12:04
[Erledigt] rewrite funktioniert nicht Jozefe Server, Hosting und Workstations 12 24.09.2008 14:58
send button funktioniert nicht, finde fehler nicht selma123 PHP Tipps 2008 3 17.09.2008 11:57
Mod Rewrite Allgemeinplätzchen nikosch Server, Hosting und Workstations 2 10.05.2008 01:35
Passwortschutz + Mod Rewrite in htaccess erzeugt 500er Error agrajag Server, Hosting und Workstations 2 17.10.2007 11:56
.htaccess funktioniert On- aber nicht OFFline DER_Brain Server, Hosting und Workstations 5 13.05.2007 10:40
Session funktioniert nicht bei session.use_cookies = Off Quagga PHP Tipps 2007 13 13.01.2007 18:27
Lokal funktioniert alles -> auf Server fast nichts PsychoEagle Datenbanken 2 14.08.2006 08:43
htaccess funktioniert nur teilweise saibot Server, Hosting und Workstations 5 07.07.2006 10:38
[Erledigt] htaccess und Verzeichnis freigeben Server, Hosting und Workstations 1 20.02.2006 17:55
CSS-Datei parsen durch htaccess funktioniert nur local PHP Tipps 2007 8 15.11.2005 13:26
Kontakrformular funktioniert nur zum Teil PHP Tipps 2005-2 12 18.07.2005 11:24

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
htaccess url kürzen, url kürzen php, htaccess url verkürzen, php url um get kürzen, htaccess mod url, htaccess url kürzen get parameter, htacess rewrite url nicht austauschen, htaccess mod_rewrite url abschneiden, php parameter in htaccess beschneiden, url kürzen mod rewrite, htacess url kürzen, htaccess php kürzen, mod_rewrite parameter abschneiden, url kürzen, get-parameter aus url schneiden apach2, htaccess link abschneiden, alles nach php abschneiden modrewrite, php in mod url, htaccess rewriterule url kürzen, url kürzen htaccess

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:30 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