Unterstriche in Ordnern ersetzen?

URLs umschreiben, umleiten, blocken oder sperren - all das und noch viel mehr kann mit mod_rewrite erreicht werden. Mit regulären Ausdrücken, Conditions und Rules stehst Du auf Kriegsfuss? mod_rewrite macht nicht das was Du willst, oder funktioniert gar nicht? hier bist Du richtig!

Moderatoren: Bob, Super-Mod

Unterstriche in Ordnern ersetzen?

Beitragvon Marcell » 30.07.2004 11:05

Hallo

Wie kann ich es bewerkstelligen das aus Ordnern wie: /Text_Text/ /Text-Text/ werden?

Meine derzeitige httacces Datei sieht so aus:


Code: Alles auswählen
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)_(.*).php http://www.altenpflegeschueler.de/$1-$2.php [R=301,L]
ErrorDocument 401 http://www.altenpflegeschueler.de/fehler/fehler.php4?fehler=401
ErrorDocument 403 http://www.altenpflegeschueler.de/fehler/fehler.php4?fehler=403
ErrorDocument 404 /error/fehler.php
ErrorDocument 500 http://www.altenpflegeschueler.de/fehler/fehler.php4?fehler=500
Redirect 301 /referate http://www.altenpflegeschueler.de/ausarbeitungen
Redirect 301 /faecher http://www.altenpflegeschueler.de/ausarbeitungen
Redirect 301 /Buecher http://www.altenpflegeschueler.de/buecher_tipps
Redirect 301 /texte http://www.altenpflegeschueler.de/ausarbeitungen
Redirect 301 /ausarbeitungen/anatomie http://www.altenpflegeschueler.de/anatomie
Redirect 301 /ausarbeitungen/arznrei http://www.altenpflegeschueler.de/arznrei
Redirect 301 /ausarbeitungen/beschaeftigung http://www.altenpflegeschueler.de/beschaeftigung
Redirect 301 /ausarbeitungen/ernaehrung http://www.altenpflegeschueler.de/ernaehrung
Redirect 301 /ausarbeitungen/fragen http://www.altenpflegeschueler.de/fragen
Redirect 301 /ausarbeitungen/gedichte-geschichten http://www.altenpflegeschueler.de/gedichte-geschichten
Redirect 301 /ausarbeitungen/krankheiten http://www.altenpflegeschueler.de/krankheiten
Redirect 301 /ausarbeitungen/pflege http://www.altenpflegeschueler.de/pflege
Redirect 301 /ausarbeitungen/psychologie-soziologie http://www.altenpflegeschueler.de/psychologie-soziologie
Redirect 301 /ausarbeitungen/recht http://www.altenpflegeschueler.de/recht
Redirect 301 /ausarbeitungen/sonstige http://www.altenpflegeschueler.de/sonstige
Redirect 301 /ausarbeitungen/praktika http://www.altenpflegeschueler.de/praktika
Redirect 301 /schulen/postleitzahl_1/ http://www.altenpflegeschueler.de/schulen/postleitzahl-1/
Redirect 301 /schulen/postleitzahl_2/ http://www.altenpflegeschueler.de/schulen/postleitzahl-2/
Redirect 301 /schulen/postleitzahl_3/ http://www.altenpflegeschueler.de/schulen/postleitzahl-3/
Redirect 301 /schulen/postleitzahl_4/ http://www.altenpflegeschueler.de/schulen/postleitzahl-4/
Redirect 301 /schulen/postleitzahl_5/ http://www.altenpflegeschueler.de/schulen/postleitzahl-5/
Redirect 301 /schulen/postleitzahl_6/ http://www.altenpflegeschueler.de/schulen/postleitzahl-6/
Redirect 301 /schulen/postleitzahl_7/ http://www.altenpflegeschueler.de/schulen/postleitzahl-7/
Redirect 301 /schulen/postleitzahl_8/ http://www.altenpflegeschueler.de/schulen/postleitzahl-8/
Redirect 301 /schulen/postleitzahl_9/ http://www.altenpflegeschueler.de/schulen/postleitzahl-9/
Redirect 301 /links/Partner.php http://www.altenpflegeschueler.de/links/partner.php
Redirect 301 /pflege/basale-stimulation.php http://www.altenpflegeschueler.de/pflege/basale-Stimulation.php
Redirect 301 /krankheiten/Aufsteigende%20Harnwegsinfekte.php http://www.altenpflegeschueler.de/Aufsteigende-Harnwegsinfekte.php
Redirect 301 /sonstige/01558.php http://www.altenpflegeschueler.de/schulen/postleitzahl-0/01558.php
Redirect 301 /sonstige/04758.php http://www.altenpflegeschueler.de/schulen/postleitzahl-0/04758.php
Redirect 301 /sonstige/06766.php http://www.altenpflegeschueler.de/schulen/postleitzahl-0/06766.php
Redirect 301 /sonstige/ambulante-pflege1.php http://www.altenpflegeschueler.de/praktika/ambulante-pflege1.php
Redirect 301 /pflege/Intregrative%20Validation.php http://www.altenpflegeschueler.de/pflege/Intregrative-Validation.php
Redirect 301 /sonstige/Altenheim-in-Suedfrankreich.php http://www.altenpflegeschueler.de/praktika/Altenheim-in-Suedfrankreich.php
Redirect 301 /sonstige/die-ambulante-pflege.php http://www.altenpflegeschueler.de/praktika/die-ambulante-pflege.php
 


Grüße

Marcell
Marcell
.
.
 
Beiträge: 8
Registriert: 30.07.2004 10:52
Wohnort: Regensburg

Beitragvon Marcell » 03.08.2004 15:06

*schups*
Marcell
.
.
 
Beiträge: 8
Registriert: 30.07.2004 10:52
Wohnort: Regensburg

Beitragvon Bob » 01.10.2004 18:29

Hi,

das könnte mit folgendem Code gehen:

Code: Alles auswählen
RewriteEngine On
RewriteRule ^([^_]+)_([^.]+)\.html$ /$1-$2.html [N]
RewriteCond %{THE_REQUEST} (.+)_(.+)
RewriteRule ^([^-]+)-([^.]+)\.html$ /$1-$2.html [R=301,L]



Viele Grüße
Robert
Zuletzt geändert von Bob am 23.12.2005 17:21, insgesamt 1-mal geändert.
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10

Beitragvon franz » 23.12.2005 17:05

Hallo,

ich hänge mich mal wieder hier rein, paßt ja irgendwie.

Frage:

geht aus einer Datei im Unterverzeichnis ala ----> /unterordner/test_index.htm

den Unterstrich als Bindestrich ausführen zu lassen?

ala ----> /unterordner/test-index.htm


Danke

Grüße und schönes Weihnachtsfest

Franz
franz
.
.
 
Beiträge: 16
Registriert: 14.12.2005 13:25
Wohnort: Siegerland

Beitragvon Bob » 23.12.2005 17:27

Ausführen lassen, oder externen redirect senden? Das sind zwei unterschiedliche Sachen. Hast du immer nur exakt einen Unterstrich im Dateinamen, oder können das auch schon einmal mehere sein?

Grüße
Robert
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10

Beitragvon franz » 24.12.2005 12:02

Hi,

Ausführen lassen, oder externen redirect senden?


Wenn ich das jetzt wüßte. :oops:

Habe mal gelesen das Google links mit unterstrichen nicht so mag, deswegen
dachte ich mir könnte man das evtl. per mod_rewrite erledigen lassen.


Hast du immer nur exakt einen Unterstrich im Dateinamen, oder können das auch schon einmal mehere sein?


Sind auch schonmal mehr wie einer.


Grüße
Franz
franz
.
.
 
Beiträge: 16
Registriert: 14.12.2005 13:25
Wohnort: Siegerland

Beitragvon Bob » 24.12.2005 14:55

Hallo Franz.
dachte ich mir könnte man das evtl. per mod_rewrite erledigen lassen.

Damit ist es aber nicht getan, parallel dazu musst du im Quelltext alle Verlinkungen ändern und die Dateien physisch alle umbenennen - sonst bringt dir das nichts.

Dieses Snippet, /unterverzeichnis/.htaccess,
Code: Alles auswählen
RewriteEngine On
RewriteRule ^([^_]+)_([^.]+)\.html$ /unterverzeichnis/$1-$2.html [N]
RewriteCond %{THE_REQUEST} ([^_]+)_(.+)
RewriteRule ^([^-]+)-([^.]+)\.html$ /unterverzeichnis/$1-$2.html [R=301,L]

ist nur dafür gedacht, dass auf alte Links, die mit Unterstrich angefordert wurden, ein externer redirect auf die "Bindestrich-Version" gesendet wird.

Grüße
Robert
Bob
Moderator
Moderator
 
Beiträge: 5044
Registriert: 01.10.2004 13:10

Beitragvon franz » 25.12.2005 17:23

Danke Robert, mal sehen wie ich das dann mache.


Schöne Restweihnachten

Franz
franz
.
.
 
Beiträge: 16
Registriert: 14.12.2005 13:25
Wohnort: Siegerland

Beitragvon steFan » 11.08.2009 13:47

Hallo zusammen

Ich möchte in der URL alle Leerzeichen durch das Pluszeichen (+) ersetzen.
Ich denke das müsste mit dieser Lösung auch klappen?

Ich habs so versucht:
Code: Alles auswählen
# ---    Leerzeichen durch Plus ersetzen::
RewriteRule ^([^/_]+) ([^/.]+)\.html$ $1+$2.html [N]
RewriteCond %{THE_REQUEST} ^GET\ /([^_]+)_([^\ ]+)\ HTTP
RewriteRule ^([^/-]+)/+([^/.]+)\.html$ /$1+$2.html [R=301,L]


Funktioniert jedoch nicht, bekomme immer einen Internal Server Error
Kann mir da einer auf die Sprünge helfen?
steFan
.
.
 
Beiträge: 5
Registriert: 07.08.2009 08:30

Beitragvon Gumbo » 11.08.2009 15:28

Probier mal Folgendes:
Code: Alles auswählen
RewriteRule ^([^/_]+)\ ([^/.]+)\.html$ $1+$2.html [N]
RewriteCond %{THE_REQUEST} ^GET\ /([^_?]+)_([^?\ ]+)(\?[^\ ]*)?\ HTTP
RewriteRule ^([^/-]+)/+([^/.]+)\.html$ /$1+$2.html [R=301,L]
Markus Wulftange
Gumbo
Moderator
Moderator
 
Beiträge: 5019
Registriert: 07.01.2005 01:18
Wohnort: Trier

Beitragvon steFan » 11.08.2009 15:37

danke für deine antwort.

bekomme zwar keinen fehler mehr, jedoch bleiben die leerzeichen bestehen.
die oben aufgeführte variante mit dem ersetzen des underscore durch den bindestrich funktoiniert übrigens einwandfrei.
steFan
.
.
 
Beiträge: 5
Registriert: 07.08.2009 08:30

Beitragvon steFan » 07.09.2009 14:08

hallo zusammen

ich hänge leider immer noch an diesem problem fest. ich habe auf meiner seite viele urls die ein leerzeichen enthalten. ich möchte, dass alle leerzeichen " " einer domain in ein pluszeichen "+" umgewandelt werden. die lösung von gumbo habe ich ausprobiert, jedoch ohne erfolg. die leerzeichen bleiben bestehen.

Code: Alles auswählen
RewriteRule ^([^/_]+)\ ([^/.]+)\.html$ $1+$2.html [N]
RewriteCond %{THE_REQUEST} ^GET\ /([^_?]+)_([^?\ ]+)(\?[^\ ]*)?\ HTTP
RewriteRule ^([^/-]+)/+([^/.]+)\.html$ /$1+$2.html [R=301,L]


hat mir hier noch jemand einen tip, oder einen anderen lösungsvorschlag?

besten dank schonmal
steFan
.
.
 
Beiträge: 5
Registriert: 07.08.2009 08:30


Zurück zu mod_rewrite

Wer ist online?

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

cron