"Subdomains" vorgaukeln?

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

"Subdomains" vorgaukeln?

Beitragvon Zeron » 24.08.2005 22:18

Hoi zusammen!

Ich habe hier gelesen, dass man mit Hilfe von ModRewrite dem User ja Adressen vorgaukeln kann, die so eigentlich gar nicht exisitieren. Dies möchte ich nun folgendermaßen nutzen:

Gibt ein Besucher

"http://www.meinedomain.de/Zeron"

ein, so soll er in Wirklichkeit auf

"http://www.meinedomain.de/index.php?site=output&useruid=74hsnvoenfk47s8e6r0k2jdi4ha7ekte"

, der Seite mit dem jeweiligen Userprofil landen. Vereinfacht könnte man also sagen, ich möchte im erweiterten Sinne "Subdomains" für die einzelnen Profilseiten erzeugen.

Wer kann mir helfen? Mir fehlen im Moment leider etwas die Kapazitäten, um den ganzen Code hier "richtig zu lernen", deshalb frage ich mal direkt nach eine Umschreibung :(

Danke!
Zeron
.
.
 
Beiträge: 14
Registriert: 24.08.2005 22:09

Beitragvon Bob » 25.08.2005 10:06

das geht per
Code: Alles auswählen
RewriteEngine on
RewriteRule ^Zeron/?$ /index.php?site=output&useruid=74hsnvoenfk47s8e6r0k2jdi4ha7ekte [L]
Bob
Moderator
Moderator
 
Beiträge: 5050
Registriert: 01.10.2004 13:10

Beitragvon Zeron » 25.08.2005 12:45

danke, aber das ist jetzt nicht dynamisch, oder?

also ich müsste für jeden user dann eine solche zeile anlegen? (nur damit ichs versteh) :)

(falls ja: gibts da limits, dass man dass zb nur xx mal machen kann, oder so?)
Zeron
.
.
 
Beiträge: 14
Registriert: 24.08.2005 22:09

Beitragvon Bob » 25.08.2005 12:54

danke, aber das ist jetzt nicht dynamisch, oder?
Nein, da in Zeron der Rest an Parametern nicht enthalten ist (wie bspw. bei /Zeron-output-74hsnvoenfk47s8e6r0k2jdi4ha7ekte. Das könnte man dynamisch gestalten).

also ich müsste für jeden user dann eine solche zeile anlegen? (nur damit ichs versteh)
Wenn du die Parameter nicht in die URL mit einbaust, dann ja.

(falls ja: gibts da limits, dass man dass zb nur xx mal machen kann, oder so?)
Die .htaccess-Datei wird natürlich bei 1000 Benutzern/Regeln immer größer. Das ist dann aber eine Frage der Performance; ein Limit "nur 10 Regeln pro .htaccess" od. ähnl. gibt es nicht.
Bob
Moderator
Moderator
 
Beiträge: 5050
Registriert: 01.10.2004 13:10

Beitragvon Zeron » 25.08.2005 13:10

ok, und wenn der name selbst der parameter wäre? würde es dann so aussehen (und funktionieren)?

Code: Alles auswählen
RewriteEngine on
RewriteRule ^Zeron/?$ /index.php?site=output&user=Zeron [L]
Zeron
.
.
 
Beiträge: 14
Registriert: 24.08.2005 22:09

Beitragvon Bob » 25.08.2005 13:17

das würde auch gehen, wäre dann aber nicht dynamisch. Dynamisch wäre dann z.B.

RewriteEngine on
RewriteRule ^([A-Za-z]+)/?$ /index.php?site=output&user=$1 [L]

Das passt auf alle URLs der Form domain.de/Buchstaben a-z in Groß- od. Kleinschreibung.

Hast du existierende Verzeichnisse, die du in der Form domain.de/verzeichnis/ aufrufst (nicht betroffen domain.de/verzeichnis/abc.etc)? Wenn ja, dann müsste man noch eine Condition einbauen, um existierende Verzeichnisse auszuschließen. Wenn du aber nicht solche Aufrufe hast, kann man sich die Condition auch sparen.
Bob
Moderator
Moderator
 
Beiträge: 5050
Registriert: 01.10.2004 13:10

Beitragvon volkiB » 26.08.2005 10:20

Ich klinke mich hier mal ein, da ich im Grunde genau das gleiche Vorhaben wie Zeron habe. Nur ein wenig modifiziert:


Ich habe folgende datei
hxxp://www.domain.de/foo/profil.php

Die File profil.php bekommt die Variable $username folgendermaßen:
hxxp://www.domain.de/foo/profil.php?username=$variable

Nun soll es so sein, dass der Webseitenbesucher bei Eingabe von
hxxp://www.domain.de/foo/profil/$variable

eigentlich folgendes aufruft:
hxxp://www.domain.de/foo/profil.php?username=$variable


Bei mir ist also nichts anders als bei Zeron, außer die Verzeichnisstruktur. Trotzdem komm ich mit den bisherigen Beiträge auf keinen grünen Zweig. Wie realisier ich mein Vorhaben?
volkiB
.
.
 
Beiträge: 2
Registriert: 26.08.2005 10:11

Beitragvon Bob » 26.08.2005 12:29

-> .htaccess im htdocs root, also /.htaccess

Code: Alles auswählen
RewriteEngine on
# ich gehe mal davon aus, dass /foo/profil/ "feste" Verzeichnisse sind,
# sich also nicht dynamisch ändern
RewriteRule ^foo/profil/([A-Za-z0-9_-]+)/?$ /foo/profil.php?username=$1 [L]
Bob
Moderator
Moderator
 
Beiträge: 5050
Registriert: 01.10.2004 13:10

Beitragvon volkiB » 26.08.2005 17:26

Das funktioniert schonmal. Vielen Dank.
Nächster Schritt ist, dass die Datei profil.php den Inhalt abhängig einer weiteren Variable nach läd.

hxxp://www.domain.de/foo/profil.php?username=$variable&zeige=$var2

Wie erweitere ich den Inhalt der .htaccess Datei. Bisher hat es funktioniert, da es eine Anweisung in profil.php gibt die im Falle $var2='' eine standartseite reinläd. Verstehst du wie ich meine?
volkiB
.
.
 
Beiträge: 2
Registriert: 26.08.2005 10:11

Beitragvon Bob » 26.08.2005 17:37

Und woher soll var2 kommen? Dann musst du ja auch die URL erweitern, bspw.

/foo/profil/variable/var2.

Dafür müsstest du vielmehr eine neue Rule hinzugügen
RewriteRule ^foo/profil/([A-Za-z0-9_-]+)/([A-Za-z0-9_-]+)/?$ /foo/profil.php?username=$1&zeige=$2 [L]
Bob
Moderator
Moderator
 
Beiträge: 5050
Registriert: 01.10.2004 13:10

Beitragvon Oskar » 29.08.2005 17:54

bei MyFlirt hat man für dies eine extra Subdomain, damit dürfte das recht einfach sein:

user.bei.myflirt.de
Oskar
.
.
 
Beiträge: 4
Registriert: 29.08.2005 17:31

Beitragvon Christian » 26.09.2005 23:26

Hallo,

([A-Za-z0-9_-]+)/?$ einzusetzen funktioniert bei mir nur halb. Usernamen mit Leerzeichen oder Umlauten werden nicht akzeptiert. Eigentlich dachte ich statt dessen (.*) einsetzen zu können. Dabei wird zwar alles erkannt, aber ich bekomme das nicht ohne eine Endung wie beispielsweise .html hin. Setze ich ein (.*)/?$ baut sich die Seite nicht richtig auf.

Als mod_rewrite Anfänger freue ich mich über jeden Hinweis!

Viele Grüße
Christian
Christian
.
.
 
Beiträge: 14
Registriert: 03.03.2005 01:53

.htaccess

Beitragvon BitH » 07.10.2005 12:48

Hi,

ich habe da noch ein viel trivialeres Problem.
Durch irgendwelche dumme Rumspielerei kann ich .htaccess-Dateien anlegen, bis der Sanitaeter kommt, aber sie werden nicht angefasst - zumindest nicht vom Indianer.
Ich fahre die Version 2.0.54 - kann jemand helfen ?

Thx.
Gruß,
Hansjoerg G. Henker
A-Z Consulting & Development
C-BIT Information-Center
BitH
.
.
 
Beiträge: 1
Registriert: 07.10.2005 12:43
Wohnort: Hohenhameln

Beitragvon EselDompteur » 25.10.2005 00:19

in der apache2.conf (oder httpd.conf je nach dem) gibt es eine einstellung, die auf die syntax des .htaccess verweisst ... wenn du also an dieser "rumgespielt" hast, würde ich da den fehler suchen ...

bei mir sieht das so aus:
Code: Alles auswählen
#
# AccessFileName: The name of the file to look for in each directory
# for additional configuration directives.  See also the AllowOverride
# directive.
#
AccessFileName .htaccess

#
# The following lines prevent .htaccess and .htpasswd files from being
# viewed by Web clients.
#
<Files ~ "^\.ht">
    Order allow,deny
    Deny from all
</Files>


wichtig dabei der untere teil ...
EselDompteur
.
.
 
Beiträge: 7
Registriert: 23.10.2005 13:17
Wohnort: Probsteierhagen


Zurück zu URL-Design

Wer ist online?

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