Eigene Seiten für User

PH

Legendäres Mitglied
hmm.

ich habe einen Stinknormalen Server mit Apache2 und PHP5, MySQL.

ich hoste meine eigene Domain, z.B. www.domain.com

darauf habe ich ein PHP-CMS installiert, also mit jede Menge Dateien im Root, sowie in Verzeichnissen wie /themes /includes /modules, usw.

dann habe ich noch weitere komplette installationen desselben CMS unter
www.domain.com/de
www.domain.com/fr
www.domain.com/ch
usw.

alle Seiten benutzen dieselbe User-Datenbank, so dass man sich mit demselben Login überall einloggen kann.


jetzt geht es darum, dass die User eigene Homepages einrichten können sollten, mit den Daten der Homepage in der Datenbank

ich hätte natürlich keine Probleme so etwas zu machen:
www.domain.com/homepage.php?id=1234
oder
www.domain.com/homepage.php?user=username

aber gibt es nicht eine elegantere Lösung, die auch noch SEO-mässig besser ankommen würde?

z.B.
username.domain.com ?

wie macht man das?


danke für Tipps!
 
Wenn es um SEO geht kannst du es auch sein lassen.

G. ist durchaus in der Lage dynamische URLs zu interpretieren.
Sie raten hingegen sogar davon ab die URLs selber umzustricken um die Interpretierbarkeit nicht künstlich zu verschlechtern.

Quelle:
googlewebmastercentral

Ich würde hierzu raten:
www.domain.com/homepage.php?user=username
da für User und G. leicht zu interpretieren.


 
Danke Sascha

schaue ich mir an!


@TSc: hmm. für Google mag
http://www.domain.com/homepage.php?user=username
ok sein, aber für User, die diese URL irgendwo anders publizieren wollen, ist das recht umständlich, vor allem wenn die Unterseiten dann so aussehen:
http://www.domain.com/homepage.php?user=us...llery〈=de

vielleicht eine Kompromisslösung?

z.B.
http://homepages.domain.com/username
=>
http://www.domain.com/homepage.php?user=username
??

wie sieht es da für Tante Google SEO-technisch aus?
 
Kommt drauf an wie die Unterseiten aussehen.

Für G. sieht ?User=Username&page=gallery&lang=de optimal aus, da sie so sehr leicht interpretieren können was auf dieser Unterseite von User Fred grad angezeigt wird (nämlich bilder) und in welcher Sprache (nämlich DE) dargestellt wird. Den "lang" und "gallery" sind übliche Schlagwörter die oft in diesem Bezug genutzt werden.

Optimal durch gute Benennung der Parameter.

z.B.
http://homepages.domain.com/username
sieht auch noch gut aus ABER hier wird es dann interessant wie du die Parameter deffinierst.
http://homepages.domain.com/username_de_gal
wäre dann nämlich grosser Mist weil G. nicht mehr erkennen kann das es sich bei DE um den Sprachcode und bei Gal um die Unterseitenart Gallerie handelt.

Das ist dann das, was der Artikel meinte mit "Maskierte URLs maskieren Informationen oft bis zur Unleserlichkeit für den Bot."

Man kann die Seiten gern user-freundlicher weil leserlicher maskieren - aber sorg dafür das die Parameter für G. weiterhin als eben diese erkennbar bleiben.
 
QUOTE (TSc @ Mo 4.01.2010, 14:25) G. ist durchaus in der Lage dynamische URLs zu interpretieren.
Sie raten hingegen sogar davon ab die URLs selber umzustricken um die Interpretierbarkeit nicht künstlich zu verschlechtern.


in diesem Falle wird die Lesbarkeit aber nicht verschlechtert


sonst müßte youTube(bekanntlich Google) es ja für Google einfacher machen

uT.com/user/800xe
müßte
uT.com/userphp.?user=800xe



Hinter deinem Link geht es um Fälle wie

shop.tld/Artikel.php?gruppe=123&sortierichtung=1
shop.tld/Artikel.php?gruppe=123&sortierichtung=2

Wenn der SHop 20 Artikel Zeigt und in einer Gruppe weniger sind .... ist eine Sortieriechtung DC

Durch die URLparameter ist ganz eindeutig zu erkennen welche "Komponente" mit "nichtbeachtung" verarbeitet werden muß um DC zu vermeiden

shop.tld/Artikel/123/2/
shop.tld/Artikel/123/1/

Hier ist für die Maschine nicht eindeutig erkennbar das da das /1/ oder /2/ ... also, nur eines derbeiden verarbeitet werden sollte

Oder weitergedacht ...
.... wenn einige Übersichtsseiten mit &sortierichtung=x als DC erkannt wurden und maschinel einfach entschieden werden kann das &sortierichtung=x diesen erzeugt und durch nichtverarbeitung der DC verhindert werden kann (und damit die GoogleRechner entlastet werden .... die haben viel Geld aber trotzdem keine Gelddruckerei)
Da kann die Erkenntniss das &sortierichtung=x nur einmal verarbeitet werden soll auch auf Die Übersichtseiten angewendet werden wo es mehr als 20 Ergebnisse also mehrere Übersichtsseiten gibt

shop.tld/Artikel.php?gruppe=123&sortierichtung=1&page=1
shop.tld/Artikel.php?gruppe=123&sortierichtung=1&page=2
shop.tld/Artikel.php?gruppe=123&sortierichtung=1&page=3
---nicht aufnehmen weil DC aufgrund von sortierichtung ---
shop.tld/Artikel.php?gruppe=123&sortierichtung=2&page=1
shop.tld/Artikel.php?gruppe=123&sortierichtung=2&page=2
shop.tld/Artikel.php?gruppe=123&sortierichtung=2&page=3
----------------------------------
vs

shop.tld/Artikel/123/1/1/
shop.tld/Artikel/123/1/2/
shop.tld/Artikel/123/1/3/
+
shop.tld/Artikel/123/2/1/
shop.tld/Artikel/123/2/2/
shop.tld/Artikel/123/2/3/






@Fragesteller
wenns mit der htaccess oben vielleicht nicht klappt
(weil sie mit Anderen Regeln kolidiert ... eventuell)

bzw du doch die SubDomains willst

im COnfix eine CatchAll Subdomain anlegen = die hat den Namen "*"
... dieses Sternchen SHIFTund + (=Asterix nannten wirs früher)


CODE
$DCkill_ =$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];


Den Namen der Sub hast du dann in HTTP_HOST

CODE
$REQUEST = strtolower($_SERVER[HTTP_HOST]);

$REQlast = -1;

$tok = strtok($REQUEST, ".");

while( $tok )

{

$REQlast++;

$REQlist[4] = $REQlist[3];

$REQlist[3] = $REQlist[2];

$REQlist[2] = $REQlist[1];

$REQlist[1] = $REQlist[0];

$REQlist[0] = $tok;

$tok = strtok( "." );

// echo("<br>$REQlast $REQlist[0] $REQlist[1] $REQlist[2] $REQlist[3] ");

}



$REQUEST_SUB = $REQlist[2];

$REQUEST_HOST = $REQlist[1].'.'.$REQlist[0];

$REQUEST_SITE = $REQlist[2].' '.$REQlist[1].' '.$REQlist[0];

$REQUEST_DOMAIN = $REQlist[1];

$REQUEST_FOLDER = $GLOBALS[folder];

$REQUEST_FILE = $GLOBALS[file];

$REQUEST_FILEPATH = $_SERVER[REQUEST_URI];

$REQUEST_FILE = $GLOBALS[file];

$REQUEST_FOLDER = $GLOBALS[folder];



$REQUEST_SUB = der Usernick


Du willst Doch /ordner/Version/nick

CODE
if ( ".html"==substr($_SERVER[REQUEST_URI], -5) )

{

//echo("<br>$_SERVER[REQUEST_URI]");

$REQUEST_FILE =substr($_SERVER[REQUEST_URI], 0, -5);

$pos =strrpos($REQUEST_FILE, "/");

$REQUEST_FOLDER=substr($REQUEST_FILE, 0,$pos);

$REQUEST_FILE =substr($REQUEST_FILE, 1+$pos);

//echo("<br>#$REQUEST_FOLDER#$REQUEST_FILE#");

}

else

{

$REQUEST_FILE = "";

$REQUEST_FOLDER = $_SERVER[REQUEST_URI];

//echo("<br>#$REQUEST_FOLDER#$REQUEST_FILE#");

}

if ( "/"==substr($REQUEST_FOLDER, 0, 1) ) $REQUEST_FOLDER=substr($REQUEST_FOLDER, 1);

if ( "/"==substr($REQUEST_FOLDER, -1 ) ) $REQUEST_FOLDER=substr($REQUEST_FOLDER, 0, -1);

if ( "/"==substr($REQUEST_FILE, 0, 1) ) $REQUEST_FILE=substr($REQUEST_FILE, 1);

if ( "/"==substr($REQUEST_FILE, -1 ) ) $REQUEST_FILE=substr($REQUEST_FILE, 0, -1);



Da hast du dann

/ordner/Version/nick/ = ordner/Version/nick @ $REQUEST_FOLDER

oder
/ordner/Version/nick.html
= ordner/Version @ $REQUEST_FOLDER
= nick @ $REQUEST_FILE


ähm, ohne htaccess gets da aber auch nicht ...
... mein

CODE
RewriteRule (.*)/$ /?folder=$1
RewriteRule (.*)\.html$ /?file=$1


die ?folder=$1 und ?file=$1 sind eine "Altlast" von früher, jetzt ungenutzt

CODE
RewriteRule (.*)/$ /nickpage.php
RewriteRule (.*)\.html$ /nickpage.php


da ... gehört noch /user/ rein ... irgendwie

CODE RewriteRule user\(.*)\.html$ /nickpage.php

oder

CODE RewriteRule \user\(.*)\.html$ /nickpage.php

 
@TSc

nach Saschas und Deinen Erklärungen hatte ich mir das so gedacht:

userpages.domain.com/username <-- Hauptseite/Einstiegsseite
userpages.domain.com/username/blog
userpages.domain.com/username/gallery
userpages.domain.com/username/contact
userpages.domain.com/username/aboutme
usw.

sieht das gut aus?
(Lang gebe ich sowieso dynamisch im Header aus)

ich würde also eine echte Subdomain erstellen, und dort wird dann per Rewrite oder per PHP-Code alles uminterpretiert.


@800XE

wow - durchaus detailliert! vielen Dank!
ich komme darauf zurück, wenn ich genau weiss was ich machen will :)
 
Zurück
Oben