|
|||
mod_rewrite und Regex - meine Erzfeinde
Moin,
ich baue grad eine neue Seite und bin inzwischen bei "schönen URLs" angelangt. Die "normalen" Seiten sollen folgendermaßen adressiert werden: /foo/bar wird zu /pages/foo/bar.php. Dafür steht in meiner .htaccess Folgendes: Code:
RewriteRule ^/?(([\w_]+/)*[\w_]+)$ /pages/$1.php [L,QSA] Code:
RewriteCond %{REQUEST_URI} !^/?(files/.*|([\w_]+/)*[\w_]+)$ RewriteCond %{REQUEST_URI} !^/?/force404\.php$ RewriteRule .* /force404.php [L] RewriteRule ^/?(([\w_]+/)*[\w_]+)$ /pages/$1.php gruß, take |
Sponsored Links |
|
|||
Enthält \w nicht den Unterstrich?
Probier es mal so: Code:
# Wenn Ressource existiert, dann kein Rewriting RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] # Ansonsten RewriteRule ^/?((?:\w+/)*\w+)$ /pages/$1.php [L,QSA] (?:…) ist ein non-capturing subpattern. Das heißt, es wird nicht zur weiteren Verwendung ($1, $2, …) gespeichert. Ich halte das für sinnvoll, um anzuzeigen, dass gewisse Informationen nicht verarbeitet, sondern nur gruppiert werden. Geändert von mermshaus (23.12.2011 um 06:19 Uhr) |
Sponsored Links |
|
|||
Laut diesem Artikel nicht.
Zitat:
Zitat:
Vielen Dank auf jeden Fall schonmal und gruß, take |
|
|||
Moin,
Zitat:
Code:
[Fri Dec 23 11:13:06 2011] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace. Problem an deinem Code ist (wenn er funktionieren würde): /files/foo.css führt zu einem 404er weils eine Datei ist. Das soll aber nur bei Dateien passieren, die außerhalb von /files/ liegen, also bspw. /pages/foo.php. Zitat:
Edit: Was ich eigentlich nur brauche, ist Folgendes: Alles was nicht mit /files/ anfängt und nicht auf ^/?([\w_]+/)*[\w_]+ zutrifft, soll einen 404-Fehler hervorrufen. Warum folgender Code das nicht tut bleibt mir ein Rätsel: Code:
RewriteCond %{REQUEST_URI} !^/?files/ RewriteCond %{REQUEST_URI} !^/?([\w_]+/)*[\w_]+$ RewriteCond %{REQUEST_URI} !=/force404.php RewriteRule .* /force404.php [L] gruß, take Geändert von take_a_7 (23.12.2011 um 12:29 Uhr) |
|
||||
Zitat:
Zitat:
Zitat:
Kann er gar nicht. Auf dem Server wird ja bei dem Code entweder nach einem Ordner (URI) oder der Datei force404.php gesucht. Wenn der Ordner nicht existiert, dann gibt es auch einen Error 404. Somit endet bei deinem Code jede Anfrage in einem Error 404, die Dateien aus /files/ werden gar nicht erst angefragt.
__________________
Rettet die Erde.... sie ist der einzige Planet mit Schokolade! |
|
|||
Moin,
Zitat:
Zitat:
Code:
RewriteCond %{REQUEST_URI} !^/?files/ RewriteCond %{REQUEST_URI} !^/?([\w_]+/)*[\w_]+$ RewriteCond %{REQUEST_URI} !=force404.php RewriteRule .* /force404.php [L] RewriteRule ^/?((?:\w+/)*\w+)$ /pages/$1.php [L,QSA] gruß, take |
|
||||
Zitat:
Wenn du allerdings einfach umschreibst auf index.php?i=das/ist/meine/uri/ und das dann in mithilfe von PHP in ein Array packst, dann hast du am Ende ein Array, das so aussieht PHP-Code:
Zitat:
Zitat:
Ich arbeite nicht so oft mit .htaccess. Ich nutze es zwar bei fast allen Projekten, allerdings immer dieselbe Regel. Ich brauche sie nur kopieren... Bei meiner Regel treffen allerdings generell alle Zeichen zu und jede Datei ist unter zwei Namen aufrufbar.
__________________
Rettet die Erde.... sie ist der einzige Planet mit Schokolade! |
|
||||
Moin,
Zitat:
Zitat:
Zitat:
Zitat:
gruß, take |
Sponsored Links |
|
||||
Zitat:
PHP-Code:
|
Sponsored Links |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
RegEx für Link-Wiederholungen | BNightSpeeder | Serveradministration und serverseitige Scripte | 4 | 10.05.2010 14:00 |
Regex Problem ("]" killt die regex) | psycho_dmr | Serveradministration und serverseitige Scripte | 7 | 29.04.2007 17:49 |
hier eine leichte: regex über seite bauen | bernard_hinault | CSS | 13 | 01.09.2006 21:33 |
RegEx (PCRE): Schließende Tags ergänzen? | Ulti | Serveradministration und serverseitige Scripte | 4 | 09.05.2006 21:01 |
regex, zeichenkette auf \w reduzieren.. | psycho_dmr | Serveradministration und serverseitige Scripte | 5 | 19.02.2006 04:08 |