mod_rewrite

#0 :: 02.01.2011 - 15:09
  • GameOver
  • User

Hi,

passt jetzt zwar nicht zu PHP, aber leider gibts keinen passenden bereich dazu.
Bin jetzt auf nen Linux Server mit Apache System umgesiedelt und habe gleich mal mit .htaccess und mod_rewrite rumgespielt :-)

Funktionieren tut alles einwandfrei, angeblich kann man aber unsichere (?) Rules einbauen.

Hier der inhalt von der .htaccess:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^nicolas-pecher\\.com$ [NC]
RewriteRule (.*) http://www.nicolas-pecher.com/$1 [R=301,L]
RewriteRule ^uebermich.html$ index.php?page=aboutme [L]
RewriteRule ^tutorials.html$ index.php?page=tutorials [L]
RewriteRule ^projekte.html$ index.php?page=projects [L]
RewriteRule ^tutorials(.*).html$ index.php?page=tutorials&id=$1
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Die ersten und letzten Zwei Zeilen sind da, um duplicate Content zu vermeiden.

Bei den letzten beiden Zeilen sollen aber angeblich Sicherheitslücken (!??) offen sein? Stimmt das oder ist das alles i.O.?

Grüße

MC-Web

#1 :: 02.01.2011 - 20:59

Hallo Nico,

RewriteRule ^tutorials(.*).html$ index.php?page=tutorials&id=$1

Bei der Zeile wirst du ein Problem kriegen, ich denke mal das die id ein Integer sein muss. (.*) steht für alles und nichts, das kann einen unerwünschten Effekt haben.

RewriteRule ^.*$ - [NC,L]

Was die Zeile bedeuten soll kann ich auch nicht sagen aber der Befehl würde alles Abfangen so das die Regel danach nie greifen würde.

RewriteRule ^.*$ index.php [NC,L]

Im Prinzip machbar alles auf die index.php umzuleiten allerdings muss man dann aufpassen wenn Seiten gelöscht werden. So würde immer die Startseite angezeigt werden, das führt zu massenhaft doppelten Content wenn man in der Index.php das nicht ordentlich behandelt. Suchmaschinen sehnen so etwas gar nicht gern. Auch existierende Ressourcen können nicht mehr Abgerufen werden.

Gruß Ultima

Admin of Ultima-Project.net

#2 :: 03.01.2011 - 10:44
  • GameOver
  • User

Ja, bei id handelt es sich um integer - aber das mit dem unerwünschten Effekt verstehe ich jetzt nicht.

Im PHP Script habe ich ein Array angelegt in dem ich alle Integer reinschreibe. Beim aufrufen eines links überprüfe ich erstmal der Wert der Variable page, die kann den Inhalt home, aboutme, tutorials and projects haben. Wenn der Inhalt tutorials ist, werden nur alle Links zu den Tutorials ausgegeben. Wenn man ein Tutorial anklickt, sieht der link etwa so aus:

http://*deleted* - im Hintergrund wird dann diese page aufgerufen:
http://www.*deleted*/index.php?page=tutorials&id=1

Wenn jetzt jemand diese Seite aufruft: http://www.nicolas-pecher.com/tutorials5.html ... gebe ich keinen Inhalt sonder nur eine Fehlermeldung aus, da ich erst 4 tutorials habe. 

Also inwiefern ist das schlecht?

Die letzten Beiden Zeilen verstehe ich selber nicht, die habe ich ledigleich im Internet vorgefunden und übernommen - im Tutorial stand, dass man mittels den beiden Zeilen die index.php ausstellen kann, sprich das wenn jemand www.nicolas-pecher.com/index.php aufruft, man auf die www.nicolas-pecher.com Homepage weitergeleitet wird.

Seiten kann ich ja eigentlich keine löschen, da ich ja nur eine habe (index.php). Den Inhalt hole ich mir aus der Datenbank, wird also der link, der als vairable page den Wert home hat, aufgerufen, wird in der DB der Inhalt der Tabelle `home` ausgewählt - ist sehr praktisch udn flexibel, Ladezeiten konnte ich dadurch sehr verkürzen, allerdings ist das dann doch genau genommen auch Duplicate Content, oder? Immerhin kann die Index.php den Inhalt von 4 verschiedenen Seiten haben - in der Adresszeile sieht das zwar Ganz anders aus, aber kann es sein, das Google das nicht trotzdem merkt?

Grüße

MC-Web

#3 :: 03.01.2011 - 10:59

Ja Google wertet die Parameter einer URL aus, das sieht man in den WMTs wunderbar.

Mit alles oder nix meinte ich sowas hier.
www.nicolas-pecher.com/tutorials.html
www.nicolas-pecher.com/tutorials.abc.html
www.nicolas-pecher.com/tutorials12a34b45.html

Statt (.*) solltest du ([0-9]*) nutzen wenn du an dieser Stelle nur Zahlen erwartest.

Admin of Ultima-Project.net