[gelöst]Apache mode rewrite starten

Alles, was den Apache betrifft, kann hier besprochen werden.

[gelöst]Apache mode rewrite starten

Postby Patchie » 30. November 2011 16:10

Hallo. Bin noch Anfänger und google hat mir leider nicht weiter geholfen.
Ich mache gerade eine neue Webseite (relaunch). Da einige der Seiten im Web einen Pagerank von bis zu 3 haben, will ich die Struktur so weit es geht beibehalten.
Ich habe aber ein eigenes CMS geschrieben und damit URLS von z.B. „.de/index.php?id=12“
Will das jetzt umwandeln also z.B. in .de/indes.html/autoauswahl/kleinwagen.html
http://corz.org/serv/tricks/htaccess2.php
Lese gerade hier und scheitere schon am ersten Beispiel ...

http://www.mal-anders-webdesign.de/frage/server_fehler.jpg

habe sowohl lokal getested als auch auf meinem 1&1 webspace.
Was mache ich da falsch??

Wie mache ich das jetzt?
1. Wo aktiviere ich moderewrite?
2. Welche befehlszeile muss ich eingeben?
Etwa so?
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/index.html$ /dino_V11.php?id=1
</IfModule>

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^(.*)\.htm$ $1.php [NC]
/* hab ich in die httpd.conf geschrieben (lokales system, aber es klappt nicht)*/

3.Wo sind die Dateien auf meinem System zu findne? Habe xampp unter vista (localer PC zum Testen). Hie rmal ein Screenshot von meinem System
http://www.mal-anders-webdesign.de/frage/server_1.jpg
Das habe ich auf meinem System gefunden
c:\xampp\xampp\apache
c:\Benuter\label\xampp\apache
Patchie
 
Posts: 8
Joined: 30. November 2011 16:03
Operating System: Vista 32bit

Re: Apache mode rewrite starten

Postby Altrea » 30. November 2011 17:44

Hallo Patchie,

Patchie wrote:http://www.mal-anders-webdesign.de/frage/server_fehler.jpg

habe sowohl lokal getested als auch auf meinem 1&1 webspace.
Was mache ich da falsch??

Zuerst einmal gibt dir der Server einen HTTP Status 500 zurück.
Da dies ein Fehlerstatus ist, solltest du im Apache error.log (bei XAMPP zu finden unter \xampp\apache\logs\error.log) einen entsprechenden Eintrag dazu finden, was dort schief läuft. Dieser ist relativ detailliert so dass du die Fehlerursache vielleicht sogar selbst herausfinden kannst.

In deiner .htaccess Datei würden mir zum Beispiel ein paar Zeilenwechsel fehlen. Jede Anweisung sollte/muss in einer eigenen Zeile stehen.

Patchie wrote:1. Wo aktiviere ich moderewrite?

Das Modul selbst muss natürlich im Apache Server aktiviert sein, dies sollte aber eh fast immer der Fall sein.

Die Engine aktivieren kannst du an verschiedenen stellen. Deshalb antworte ich mal mit einem glasklaren "Das kommt darauf an."

Da ein Rewrite sehr häufig Applikationsgebunden ist und u.U. auch auch gemieteten Servern auf denen man keinen Zugriff auf die Serverkonfigurationsdateien hat laufen können soll, ist die .htaccess Datei häufig die beste Möglichkeit.
Aber natürlich kannst du dies auch in anderen Kontexten aktivieren und verwenden.
Die Apache Dokumentation zu mod_rewrite zählt auf:
Context: server config, virtual host, directory, .htaccess


Du siehst, RewriteEngine kann also auch in <Directory>- als auch VHost-Blöcken verwenden werden.

Patchie wrote:2. Welche befehlszeile muss ich eingeben?
Etwa so?
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^/index.html$ /dino_V11.php?id=1
</IfModule>

Zum Beispiel. Die von dir gesetzte Regel ist natürlich relativ sinnfrei, aber zum testen sollte sie reichen.
Apache selbst hat auch ein recht verständliches mod_rewrite intro, falls du dich ein wenig inspirieren möchtest.

Patchie wrote:/* hab ich in die httpd.conf geschrieben (lokales system, aber es klappt nicht)*/

klappt nicht ist keine qualifizierte Fehlerbeschreibung. Da hier niemand weiß was genau nicht funktioniert bzw. was überhaupt passiert, kann dir da auch akut keiner helfen.
Denk auch daran, dass nach jeder Änderung an der Konfigurationsdatei der Apache neugestartet werden muss, damit die Änderungen aktiv werden (noch ein Grund mehr für .htaccess, .htaccess ist aber langsamer)

Patchie wrote:3.Wo sind die Dateien auf meinem System zu findne? Habe xampp unter vista (localer PC zum Testen). Hie rmal ein Screenshot von meinem System
http://www.mal-anders-webdesign.de/frage/server_1.jpg
Das habe ich auf meinem System gefunden
c:\xampp\xampp\apache
c:\Benuter\label\xampp\apache

Kommt drauf an, was du mit "die Dateien" meinst.
Der zweite Pfad im Benutzer Pfad ist natürlich unglücklich. Empfohlen ist es XAMPP im Stammverzeichnis deiner Partition zu installieren, also so ähnlich wie in dem oberen Pfad aber ohne das zusätzliche xampp Verzeichnis.

Und dann würden deine statischen Dateien idealerweise in c:\xampp\htdocs\ oder einem Unterordner davon liegen.

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11933
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Apache mode rewrite starten

Postby Patchie » 19. December 2011 16:40

Yo danke. Habs hinbekommen :roll:

Code: Select all
RewriteEngine on
RewriteBase /
RewriteRule index.html$          index.php?id=1

RewriteRule preise_anfrage.html$ index.php?id=2


Also einfach "wie soll es aussehen" (z.B. index.html) und "durch was ersetzen?" (z.B. index.php).

Was ich aber nicht ganz verstehe ist folgendes:
Wenn ich so etwas schreibe
Code: Select all
RewriteRule container/mini_container.html$ index.php?id=12

bekomme ich eine unformatierte Seite.
Erst wenn ich
<link href="css/bildschirm.css" rel="stylesheet" type="text/css" media="all" />
in
<link href=".../css/bildschirm.css" rel="stylesheet" type="text/css" media="all" />
ändere, klappt es.

Die "fake" URL zerhaut mit also meine ganzen Links, zumindest wenn ich versuche eine Unterebene zu simulieren...
Was kann ich dagegen tun? :|
Patchie
 
Posts: 8
Joined: 30. November 2011 16:03
Operating System: Vista 32bit

Re: Apache mode rewrite starten

Postby Patchie » 02. January 2012 12:07

Ok, jetzt hab ich es fast hinbekommen.

Code: Select all
RewriteRule schuttrutsche.html$  index.php?id=9
RewriteRule infos.html$          index.php?id=10
RewriteRule kontakt.html$        index.php?eingebettet=kontakt

RewriteRule container_und_fahrzeuge.html$      index.php?id=4
RewriteRule container_und_fahrzeuge/mini_container.html$      index.php?id=12
RewriteRule container_und_fahrzeuge/absetzcontainer.html$     index.php?id=13


Rewrite funktioniert, auch bei includierten (Fomrularen) oben als "eingebettet" bezeichnet.
Wenn ich aber in eine Verzeichnistiefe reingehe wie z.B.container_und_fahrzeuge/mini_container.html, klappt es nciht. Keine Fehlermeldung, er läd einfach die "übergeordnete Seite" in dem fall die "index.php?id=4" (container_und_fahrzeuge.html). Doch wenn ich es wieder mit der "index.php?id=12" versuche, kommt die Seite.

Das versteh ich nciht. Und es gibt KEINE Beispiele im Netz! ALLE Beispiele haben IMMER nur das Rootverzeichnis als Beispiel! Da kann ich googlen wie ich will. :evil:

Kann mir da jemand helfen?
Patchie
 
Posts: 8
Joined: 30. November 2011 16:03
Operating System: Vista 32bit

Re: Apache mode rewrite starten

Postby Patchie » 02. January 2012 15:18

Fehler gefunden?!

Ich habe wohl den "Fehler" gefunden.
Folgendes klappt NICHT:

Code: Select all
 
RewriteRule container.html$                     index.php?id=4
RewriteRule container/mini-container.html$      index.php?id=12


Aber wenn man das "r" WEGLÄßT geht es!
Versteh ich überhaupt nicht!
RewriteRule container/mini-containe.html$ index.php?id=12

Wenn ich es da lasse, komme ich IMMER auf die Seite unter "index.php?id=4",
die REwriteRule wird aber in der URL richtig umgeschrieben.

Warum?? Kann doch gar nicht sein, das der nach dem Wort "container" in der
Zeichenfolge "mini-container" scannt??

Hat mich ganze 5 Stunden gedauert das rauszufinden <.<
Patchie
 
Posts: 8
Joined: 30. November 2011 16:03
Operating System: Vista 32bit

Re: Apache mode rewrite starten

Postby Altrea » 02. January 2012 16:48

Der . in Rewrite Rules ist ein wildcard character, der ein "beliebiges Zeichen" repräsentiert.
Möchtest du den Punkt als Punkt verwenden, musst du ihn mit einem Backslash terminieren.

Ich bin alles andere als ein Regex Experte. Du solltest dir diesbezüglich vielleicht mal das eine oder andere Tutorial vornehmen, wenn du effektiv damit arbeiten möchtest :D
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11933
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Apache mode rewrite starten

Postby Patchie » 03. January 2012 11:18

Probiere schon die ganze Zeit :roll:
Doch ein wirklich gutes Tutorial gibt es leider nicht. :x

Ist halt so eine eigene Welt dieses rewrite Zeug.
Kann auch kaum einer hab ich so den Eindruck...

Aber das mit dem "." ist ein gute Hinweis gewesen. Dachte es liegt an meinen Includierten Dateien, aber es ist ja dann wohl ein Logigproblem.
Werde ich wohl nicht um ein Appache Buch von amazon rumkommen ... :roll: und noch mehr Arbeit :|

Noch ne kurze Frage: wie escape ich denn da richtig?
habe es so probiert aber nichs klappt:

RewriteRule preise_anfrage/preise_anfrage_halteverbot.html$ index.php?eingebettet=preise_anfrage_halteverbot

RewriteRule \halteverbot.html$ index.php?id=8
RewriteRule halteverbot\.html$ index.php?id=8
RewriteRule halteverbot.\html$ index.php?id=8
RewriteRule halteverbot\.\html$ index.php?id=8
RewriteRule halteverbot.html$ index.php?id=8
Wenn ich da ein \ einsetze, funktioniert es mit dieser rule nicht mehr, aber die 1. rule funktioniert wieder.
Patchie
 
Posts: 8
Joined: 30. November 2011 16:03
Operating System: Vista 32bit

Re: Apache mode rewrite starten

Postby Altrea » 03. January 2012 13:03

Hallo Patchie,

Patchie wrote:Probiere schon die ganze Zeit :roll:
Doch ein wirklich gutes Tutorial gibt es leider nicht. :x

Das kann ich so nicht bestätigen. Folgenden Forum-Eintrag finde ich schonmal sehr hilfreich für den Anfang: http://forum.modrewrite.de/topic82.html
Dort erfährst du einiges über verschiedene Fehlerursachen, deren Wirkungen und wie du Fehler eingrenzen kannst.

Ansonsten sind die offiziellen Dokumentationen auch sehr umfangreich und Hilfreich:
http://perldoc.perl.org/perlre.html
http://httpd.apache.org/docs/current/mo ... write.html ( vorallem http://httpd.apache.org/docs/current/mo ... ewriterule )
http://httpd.apache.org/docs/current/re ... html#regex

Patchie wrote:Ist halt so eine eigene Welt dieses rewrite Zeug.
Kann auch kaum einer hab ich so den Eindruck...

Es ist eine eigene Welt, aber ich kenne eine ganze Reihe an Leuten, die das ziemlich gut beherrschen.
Man muss sich halt die Zeit nehmen und sich da reinfuchsen.

Patchie wrote:Aber das mit dem "." ist ein gute Hinweis gewesen. Dachte es liegt an meinen Includierten Dateien, aber es ist ja dann wohl ein Logigproblem.

Rewrites greifen noch vor irgendwelchen Quelltexten, es kommt ganz auf die URL und den Rewrite an.

Patchie wrote:Werde ich wohl nicht um ein Appache Buch von amazon rumkommen ... :roll: und noch mehr Arbeit :|

Auch eine Möglichkeit. Aber nur so lernt man es.

Patchie wrote:RewriteRule \halteverbot.html$ index.php?id=8
RewriteRule halteverbot\.html$ index.php?id=8
RewriteRule halteverbot.\html$ index.php?id=8
RewriteRule halteverbot\.\html$ index.php?id=8
RewriteRule halteverbot.html$ index.php?id=8
Wenn ich da ein \ einsetze, funktioniert es mit dieser rule nicht mehr, aber die 1. rule funktioniert wieder.


Versuchs mal mit folgender Rule:
Code: Select all
(vorausgesetzt die Datei befindet sich nicht in einem Unterverzeichnis)
RewriteRule ^halteverbot\.html$ /index.php?id=8

(oder mit beliebigen Unterverzeichnissen)
RewriteRule ^.*/halteverbot\.html$ /index.php?id=8


Alternativ kannst du in deinem Fall auch einen Alias statt eines RegExp benutzen, da du den ganzen dynamischen Zauber von regulären Ausdrücken garnicht benötigst:
Code: Select all
Alias halteverbot.html index.php?id=8


(alles ungetestet und ohne Gewähr)

mit freundlichen Grüßen,
Altrea
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11933
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Apache mode rewrite starten

Postby Patchie » 03. January 2012 13:29

danke!

Hab hinbekommen :D :D

Hab nach "mode rewrite prefix auschalten" gegoogled und so funktioniert es ohne Probleme:

Code: Select all
RewriteRule ^halteverbot.html$    index.php?id=8

RewriteRule preise_anfrage/preise_anfrage_halteverbot.html$       index.php?eingebettet=preise_anfrage_halteverbot


Werd mich wohl doch etwas genauer damit befassen müssen, weil ich ja so, jede neue Seite manuell in die access eintragne muss :roll:
Also wohl ehr mit so was wie Variablen arbeiten... Das wird noch toll werden :roll:

Aber so geht es ja erstmal :wink:

Trotzdem danke :)
Patchie
 
Posts: 8
Joined: 30. November 2011 16:03
Operating System: Vista 32bit

Re: Apache mode rewrite starten

Postby Altrea » 03. January 2012 14:12

Patchie wrote:
Code: Select all
RewriteRule ^halteverbot.html$    index.php?id=8

Ich würde den Punkt dennoch mit Backslash terminieren, denn ansonsten wird auch "halteverbotXhtml" etc rewritet.

Also:
Code: Select all
RewriteRule ^halteverbot\.html$    index.php?id=8


Und bezüglich Variablen, schau dir mal Groups an, Beispielsweise auf einen der unzähligen RegEx Cheatsheets, wie diesem hier:
http://www.addedbytes.com/download/regu ... et-v1/pdf/
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11933
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: Apache mode rewrite starten

Postby Patchie » 03. January 2012 14:16

Noch mal ne Frage:
Ist es nicht möglich sogenantne "affiliate links" wie z.B. von Clickbank, mit mode rewrite zu "Tarnen"?
<a href="http://ITEM.VENDOR.pay.clickbank.net" target="cb">CLICK HERE TO PURCHASE</a>
<a href="http://www.getarnt-unterwegs.de" target="cb">CLICK HERE TO PURCHASE</a>

RewriteEngine on
RewriteBase /
RewriteRule http://www.getarnt-unterwegs.de$ http://ITEM.VENDOR.pay.clickbank.net

Ja, ich weiß, für die komplette URL geht RewriteRule nicht aber was ich bisher gelesen habe muss ich doch auch die GANZE URL umschreiben können? Is tdoch ne prima Möglichkeit an "Bankdaten" zu kommen?
Fake Mail die den Kunden um einne "Login" bittet und ich (bin in China) bekomme die Daten und buche dann massenhaft "kleine" Beträge ab. Da schützt mich ja dann auch nicht meine Firewall? Oder eine "Phishing" Software?

Schon cool 8)
Patchie
 
Posts: 8
Joined: 30. November 2011 16:03
Operating System: Vista 32bit

Re: Apache mode rewrite starten

Postby Altrea » 03. January 2012 16:30

Patchie wrote:Noch mal ne Frage:
Ist es nicht möglich sogenantne "affiliate links" wie z.B. von Clickbank, mit mode rewrite zu "Tarnen"?
<a href="http://ITEM.VENDOR.pay.clickbank.net" target="cb">CLICK HERE TO PURCHASE</a>
<a href="http://www.getarnt-unterwegs.de" target="cb">CLICK HERE TO PURCHASE</a>


Wenn du ein bißchen von den angeratenen Dokumentationen gelesen hättest, könntest du es dir selbst beantworten.
Ich darf zitieren:
http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule wrote:Absolute URL
If an absolute URL is specified, mod_rewrite checks to see whether the hostname matches the current host. If it does, the scheme and hostname are stripped out and the resulting path is treated as a URL-path. Otherwise, an external redirect is performed for the given URL
[...]


Ein Redirect ändert die URL, ein Rewrite nicht.

Patchie wrote:Ja, ich weiß, für die komplette URL geht RewriteRule nicht aber was ich bisher gelesen habe muss ich doch auch die GANZE URL umschreiben können? Is tdoch ne prima Möglichkeit an "Bankdaten" zu kommen?

Du kannst ganze URLs umschreiben, sofern der hostname gleich bleibt, was die Sache wieder deutlich einschränkt.
Aber selbst wenn das möglich wäre, müsste ein Hacker schon bis an die Serverkonfiguration der Bank herankommen, dort die Änderung vornehmen und diese dann noch mit einem flush oder restart übernehmen.

Da ist es doch viel effizienter, eine der Bank-URL sehr nahekommende aber ihm selbst gehörende URL zu registrieren (zum Beispiel http://www.citibank.go.de) und dort dann das geklaute Design der Bank zu verwenden. Du kannst selbstverständlich auch mit anderen Mitteln wie inline-Frames beliebige URLs einbinden, da brauchst du nichtmal PHP für.
Aber wir schweifen ab.

P.S.: fake Bankseiten kannst du aber immernoch am fehlenden, falschen oder fremden HTTPS Zertifikat erkennen.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 11933
Joined: 17. August 2009 13:05
XAMPP version: several
Operating System: Windows 11 Pro x64

Re: [gelöst]Apache mode rewrite starten

Postby Patchie » 04. January 2012 10:52

Yo, alles klar. :)

Ich habs verstanden und werde mich mal mehr appache servern befassen 8)

*close* :wink:
Patchie
 
Posts: 8
Joined: 30. November 2011 16:03
Operating System: Vista 32bit


Return to Apache

Who is online

Users browsing this forum: No registered users and 248 guests