.htaccess RewriteRule funktioniert ohne .htm nicht

Eines der wichtigsten Anwendungsgebiete von mod_rewrite ist das umschreiben von dynamischen in statische URLs um "suchmaschinenfreundliche URLs" zu erzeugen. Aber was ist besser fürs Ranking? http://www.url.com/12_2.htm, http://www.url.com/url,12,2.htm oder doch lieber http://www.url.com/12/2/url/ Fragen zum URL-Design werden hier diskutiert.

Moderator: Super-Mod

.htaccess RewriteRule funktioniert ohne .htm nicht

Beitragvon raphaelPixelitos » 24.05.2010 22:59

Hallo,

ich möchte auf einer Homepage mit Hilfe der .htaccess-Datei die URLs für den User so abändern, dass er nichtmehr

http://www.domain.tld/index.php?p=seite

sondern

http://www.domain.tld/seite

eingeben kann.

Mit:

Code: Alles auswählen
RewriteEngine on
RewriteRule ^(.*)/$ /index.php?p=$1




habe ich das auch schon so hinbekommen, obwohl ich hierbei noch das Problem habe, dass ich mit

Code: Alles auswählen
RewriteRule ^(.*)/?$ /index.php?p=$1




versucht habe, den slash optional zu machen und es mir dann einen Fehler bringt. Vielleicht weiß ja jemand von euch, warum?

Zu meinem wichtigeren Problem:

Ich include per PHP include eine Seite in der


index.php- Datei.


Jetzt bekomme ich allerdings in der Get variable $_GET['p'], in der eigentlich

die Variable von der URL, nämlich http://www.domain.tld/seite

stehen sollte den Inhalt:

Code: Alles auswählen
redirect:/index.php




Wenn ich in der .htacces-Datei jedoch das \.htm hintendran hänge
also:


Code: Alles auswählen
RewriteRule ^(.*)\.htm/$ /index.php?p=$1




funktioniert es. Ich will es aber ohne \.htm, weil ich will, dass der User

http://www.domain.tld/seite/

und nicht

http://www.domain.tld/seite.htm/

eingeben kann.
Kann mir jemand helfen? Ich habe schon einige Möglichkeiten ausprobiert, aber bestimmt steckt der Fehler im Detail.


Grüße Raphael
raphaelPixelitos
.
.
 
Beiträge: 2
Registriert: 24.05.2010 22:53

Re: .htaccess RewriteRule funktioniert ohne .htm nicht

Beitragvon Gumbo » 22.07.2010 10:59

Das Problem an der genannten Regel ist, dass auch das Ziel der Regel („index.php“) auf das Suchmuster der Regel zutrifft und es damit zu einer Endrekursion kommen kann. Aus diesem Grund sollte das Ziel von der Regel ausgenommen werden:
Code: Alles auswählen
RewriteCond $1 !=index.php
RewriteRule ^(.*)/?$ /index.php?p=$1
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier


Zurück zu URL-Design

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron