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 26.11.2009, 01:13  
Neuer Benutzer
 
Registriert seit: 30.03.2008
Beiträge: 10
jojo75x befindet sich auf einem aufstrebenden Ast
Standard Mod_Rewrite rewritecond HTTP in HTTPS für bestimmte Links

Hallo zusammen,

ich möchte ein paar Seiten einer Internetseite auf verschlüsselte Seiten umleiten per .htaccess Datei und dem rewritecond-Befehl. Da ich mit dem Thema bisher recht wenig zu tun hatte, bekomme ich gerade mal die einfachsten Dinge im Bereich mod_rewrite hin. Ich möchte folgendes machen:

Wenn jemand den Link

http://www.meinedomain.de/index.php?id=irgendeinezahl

aufruft soll er umgeleitet werden auf die sichere Seite

httpS://www.meinedomain.de/index.php?id=irgendeinezahl


Wie man generell Subdomains umleitet von http auf https habe ich bereits herausgefunden und es funktioniert auch ohne Probleme, allerdings bekomme ich es nicht hin, sobald ich diese Änderung für eine bestimmte Unterseite umsetzen will - bei der Suche habe ich auch noch keine Internetseite gefunden, die mal eine wirkliche Einführung für Dummies wie mich in das Thema bietet - vielleicht habt Ihr hier auch einen Tipp.

Wäre super dankbar, wenn mir hier jemand zeitnah eine Hilfestellung geben könnte.

Vielen Dank
jojo75x
jojo75x ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 26.11.2009, 01:30  
Erfahrener Benutzer
 
Benutzerbild von taurus
 
Registriert seit: 01.11.2008
Beiträge: 825
PHP-Kenntnisse:
Anfänger
taurus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

was hast du denn bisher versucht?

wenn du schon subdomains umleitest müsstet du den rest ja auch hinbekommen, google hilft immer!
PHP-Code:
RewriteCond %{REQUEST_URI} %{SERVER_PORT}   !^443$
RewriteRule  (.*)  https://%{HTTP_HOST}/index.php?=$1   [L] 
du musst hier natürlich auch nich deine get parameter entsprechend erweitern
was den synthax von der rewritecond angeht bin ich mir nicht sicher..

empfehlenswert ist auch das hier
taurus ist offline   Mit Zitat antworten
Alt 26.11.2009, 02:01  
Neuer Benutzer
 
Registriert seit: 30.03.2008
Beiträge: 10
jojo75x befindet sich auf einem aufstrebenden Ast
Standard

Hallo Taurus,

vielen Dank für die schnelle Hilfe. Schau mir das morgen mal in Ruhe an.
Problem ist, dass ich die Grundstruktur noch nicht so ganz geblickt habe mit den ganzen () . * ^ ! etc. Deshalb auch die Frage nach einem Link für Dummies. Das Beispiel für den Subdomain habe ich im Internet gefunden und konnte es für meine Bedürfnisse umbauen - aus diesem Grund habe ich dafür auch schon eine Lösung.
Vielen Dank schon mal! Melde mich, ob es geklappt hat.
jojo75x ist offline   Mit Zitat antworten
Alt 27.11.2009, 00:30  
Neuer Benutzer
 
Registriert seit: 30.03.2008
Beiträge: 10
jojo75x befindet sich auf einem aufstrebenden Ast
Standard

Also ich scheine zu blöd zu sein oder das Ganze noch nicht begriffen zu haben. Habe jetzt nochmal weiter probiert und auch gesucht, aber ich finde keine Lösung für mein Problem. Dachte folgendes geht, aber das tut es nicht:

RewriteCond %{REQUEST_URI} !^index\.php\?id=(2|5|13)
RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

Es soll also bei den Seiten-IDs 2 oder 5 oder 13 die gleiche URL allerdings mit HTTPS voran aufgerufen werden. ICh erhalte hier aber die Meldung, dass das Skript endlos laufen würde. Kann mir nochmal jemand behilflich sein?
jojo75x ist offline   Mit Zitat antworten
Alt 27.11.2009, 01:46  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

dein https-vhost läuft doch aufs gleiche verzeichnis oder ?
also wird dort auch die gleiche .htaccess genutzt und wieder überprüft ob die request-uri die angegebene ist und wenn das der fall ist ... versucht er natürlich wieder weiterzuleiten .... endlosschleife ... die Condition muss also
auch abfragen ob die url https nutzt, was irgendwie mit was richtung
Code:
RewriteCond %{HTTPS} !=on
geht, musst du mal genauer googlen

deine Rewrite-Condition gilt übrigends nicht nur für die id 2, 5 und 13 sondern für alle seiten deren ids mit 2, 5 und 13 anfangen, da fehlt noch ein $ am ende wenn es nur die sein sollen.
robo47 ist offline   Mit Zitat antworten
Alt 27.11.2009, 06:14  
Erfahrener Benutzer
 
Benutzerbild von taurus
 
Registriert seit: 01.11.2008
Beiträge: 825
PHP-Kenntnisse:
Anfänger
taurus ist zur Zeit noch ein unbeschriebenes Blatt
Standard

auf https kannst du auch mit server_port prüfen... hab überlesen dass du nur bestimmte unterseiten willst da ist meine cond natürlich quatsch
taurus ist offline   Mit Zitat antworten
Alt 27.11.2009, 12:02  
Neuer Benutzer
 
Registriert seit: 30.03.2008
Beiträge: 10
jojo75x befindet sich auf einem aufstrebenden Ast
Standard

Das heißt also, dass etwas in dieser Art funktionieren müsste (kann es gerade nicht testen bin unterwegs):

PHP-Code:
RewriteCond %{REQUEST_URI} %{SERVER_PORT}   !^443$
RewriteCond  %{REQUEST_URI}   !^index.php?id=(2$|5$|13$)
  
RewriteRule  (.*)  https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] 
oder wäre !^index\.php\?id=(2|5|13)$ richtig?

Vielen Dank schon mal für Eure Antworten.
jojo75x ist offline   Mit Zitat antworten
Alt 27.11.2009, 16:18  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.991
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

Dann frage erst, wenn Du getestet hast. Wir müssen uns hier nicht künstlicher vergeistigen.
__________________
--
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 28.11.2009, 01:24  
Neuer Benutzer
 
Registriert seit: 30.03.2008
Beiträge: 10
jojo75x befindet sich auf einem aufstrebenden Ast
Standard

@nikosch: du hast recht, sorry

@alle:
Habe jetzt was gefunden:

RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{QUERY_STRING} ^id=517$
RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

so scheint es zu funktionieren, allerdings sind nach dem einmaligen Aufruf der Seite index.php?id=517 alle Seiten verschlüsselt. Muss ich dann noch eine weitere RewriteRule einbauen, die wie folgt aussieht

RewriteCond %{SERVER_PORT} !^80$
RewriteCond %{QUERY_STRING} !^id=517$
RewriteRule (.*) http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

um für alle anderen Seiten außer id=517 wieder das normale http zu setzen?

Prinzipiell scheint es so zu funktionieren, aber ist das der richtige Weg, wie man sowas gestaltet oder ist das DAU-Programmierung?

Geändert von jojo75x (28.11.2009 um 01:44 Uhr).
jojo75x ist offline   Mit Zitat antworten
Alt 02.12.2009, 03:44  
Neuer Benutzer
 
Registriert seit: 30.03.2008
Beiträge: 10
jojo75x befindet sich auf einem aufstrebenden Ast
Standard

Ich benötige doch noch einmal Hilfe von den Cracks hier. Nachdem ich dachte es funktioniert alles, habe ich nun doch noch ein Problem festgestellt:

ich nutze momentan folgenden .htaccess-Code:

PHP-Code:
RewriteEngine On
#Umleitung von http://domain.de zu http://WWW.domain.de
RewriteCond %{HTTP_HOST} ^[^.]*.[^.]*$
RewriteRule http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

#http zu https für sub1, sub2, sub3 und sub4
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(sub1|sub2|sub3|sub4)/?$ 
https://%{SERVER_NAME}%{REQUEST_URI}

#umleiten auf https für id 1,2,3,4
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{QUERY_STRING} ^id=(1$|2$|3$|4$)
RewriteRule (.*) https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

#zurück umleiten auf http für id verschieden von 1,2,3,4
RewriteCond %{SERVER_PORT} !^80$
RewriteCond %{QUERY_STRING} !^id=(1$|2$|3$|4$)
RewriteRule (.*) http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] 
Nun habe ich das Problem, dass ich unter meinem Standardbrowser Firefox 3.5 (die anderen habe ich noch nicht durchgetestet) die Meldung erhalte, dass nicht alle Daten verschlüsselt übertragen werden, sobald ich eine der Seiten mit der id 1,2,3 oder 4 aufrufe.

Sobald ich aber den Teil

PHP-Code:
#zurück umleiten auf http für id verschieden von 1,2,3,4
RewriteCond %{SERVER_PORT} !^80$
RewriteCond %{QUERY_STRING} !^id=(1$|2$|3$|4$)
RewriteRule (.*) http://%{SERVER_NAME}%{REQUEST_URI} [R=301,L] 
aus der .htaccess herausnehme, erhalte ich eine fehlerfrei verschlüsselte Seite, allerdings wird die Verschlüsselung dann aber (logischerweise) nicht wieder zurückgesetzt, wenn eine ID verschieden von 1,2,3 oder 4 aufgerufen wird.

Kann mir jemand helfen, wo der (Denk-)Fehler liegt? Vielen Dank!
jojo75x 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
Bestimmte Links entfernen duderino PHP Tipps 2006 6 17.06.2006 13:34
Bestimmte Worte durch Links ersetzen PHP Tipps 2006 4 15.02.2006 19:19
Bestimmte Links in spezieller Farbe? BartTheDevil89 HTML, Usability und Barrierefreiheit 3 11.07.2005 21:42
Error 500 bei .htaccess test022 PHP Tipps 2005 18 10.02.2005 17:11
umschalten des http / https protokolls mit php ohne redirect PHP Tipps 2005 2 12.01.2005 15:29

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
rewritecond request_uri, rewritecond %{request_uri}, rewritecond https, mod_rewrite https, rewritecond, rewrite https, rewritecond %{https}, mod_rewrite request_uri, rewritecond %{https} !=on, request_uri mod_rewrite, rewritecond %{https} on, rewriterule http https, rewritecond https on, mod_rewrite rewritecond, rewrite condition https, \rewritecond %{request_uri}\, request_uri rewritecond, https mod_rewrite, rewrite http https, rewritecond http https

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