Url von variablen namen als subdomain ausgeben.|mod rewrite

Alles, was den Apache betrifft, kann hier besprochen werden.

Url von variablen namen als subdomain ausgeben.|mod rewrite

Postby restinpeace » 23. March 2010 12:40

Hallo liebe Community.

Es geht um das umschreiben einer url mittels .htaccess durch das Modul mod rewrite von Apache.


Ich habe folgendes Problem.
Ich möchte das der übergebene username restinpeace aus dem permalink entfernt wird und als subdomain vorne dran gehängt wird ohne Verlust von nichtladenden .css dateien.
so siehts jetzt aus

http://url.de/restinpeace/blog/1/

und so soll es eigendlich aussehen.

http://restinpeace.url.de/blog/1/

evtl. könnte mann es ja auch so aussehen lassen das immer bei dieser Url der 1 blog eintrag des users angezeigt wird.

http://restinpeace.url.de/

so sieht derzeit meine .htaccess aus

Code:
Code: Select all
RewriteEngine On
Options +Followsymlinks
RewriteBase /
AddDefaultCharset UTF-8
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.* - [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*/images/(.*)$ /images/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*/uploads_user/(.*)$ /uploads_user/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /profile.php?user=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)?$ /profile.php?user=$1&v=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/game/([0-9]+)/?$ /game.php?user=$1&game_id=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/albums/([0-9]+)/([0-9]+)/?$ /album_file.php?user=$1&album_id=$2&media_id=$3 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/albums/([0-9]+)/?$ /album.php?user=$1&album_id=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/albums/([0-9]+)/([^/]+)?$ /album.php?user=$1&album_id=$2$3 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/albums/?$ /albums.php?user=$1 [L]


RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/blog/([0-9]+)/?$ /blog.php?user=$1&blogentry_id=$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/blog/([^/]+)?$ /blog.php?user=$1$2 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/blog/?$ /blog.php?user=$1 [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/trackback/([0-9]+)/?$ /blog_ajax.php?task=trackback&user=$1&blogentry_id=$2 [L]








ich hoffe mir kann dabei einer helfen, gesucht habe ich mich schon blöd und leider nichts passendes gefunden, gepostet in schon 2 foren und bis heute keine hilfe bekommen -.-
PS: Wildcard DNS ist aktiviert, Basedir ist natürlich im header der ladenden php dateien mit angegeben was glaub so sein muss damit css korekt funktioniert. bis bald
restinpeace
 
Posts: 3
Joined: 23. March 2010 12:20

Re: Url von variablen namen als subdomain ausgeben.|mod rewrite

Postby Nobbie » 23. March 2010 13:18

Das ist ein schlichter Redirect und kein Rewrite:

Code: Select all
Redirect /restinpeace http://restinpeace.url.de


Und das ganze kommt in die .htaccess von http://url.de (ins DocumentRoot Verzeichnis). Fertig.
Nobbie
 
Posts: 13176
Joined: 09. March 2008 13:04

Re: Url von variablen namen als subdomain ausgeben.|mod rewrite

Postby restinpeace » 23. March 2010 13:46

ich glaube du überliest noch einmal mein vorhaben .
so ist dies nicht möglich, da ich nicht nur einen benutzernamen umschreiben möchte sondern dynamisch viele.
restinpeace
 
Posts: 3
Joined: 23. March 2010 12:20

Re: Url von variablen namen als subdomain ausgeben.|mod rewrite

Postby Nobbie » 23. March 2010 16:05

Bevor ich da überhaupt nachdenke: wieso änderst Du es nicht an der Quelle? Was hat das für einen Sinn?

P.S.: Auch ohne den von mir entdeckten Sinn, hier eine allgemeine Lösung (die auch die URL Parameter durchreicht, falls welche vorhanden sind). Um kein häßliches Fragezeichen alleine anzuhängen, sind zwei RewriteCond für den QUERY_STRING notwendig (man hätte ihn auch einfach dranklatschen können, aber wenn nix drin steht, bleibt das einsame Fragezeichen am Ende):

Code: Select all
RewriteEngine On
RewriteCond %{HTTP_HOST} ^uri\.de$
RewriteCond %(QUERY_STRING} ^$
RewriteRule ([^/]*)/(.*)$ http://$1.uri.de/$2 [R,L]
RewriteCond %{HTTP_HOST} ^uri\.de$
RewriteCond %(QUERY_STRING} !^$
RewriteRule ([^/]*)/(.*)$ http://$1.uri.de/$2?%{QUERY_STRING} [R,L]
Nobbie
 
Posts: 13176
Joined: 09. March 2008 13:04

Re: Url von variablen namen als subdomain ausgeben.|mod rewrite

Postby restinpeace » 23. March 2010 20:41

hast recht. direkt an der quelle ist es besser gelöst . ich lese jetzt direkt aus der datenbank die $user aus und lasse sie direkt als subdomain dranhängen.

Code: Select all
function url_create($file, $user) 

{   global $setting;   
$url_conversion = $this->convert_urls[$file];   
if( $setting['setting_url'] == 1 )   
{          if(isset($url_conversion['url_subdomain']))   
 {     $new_url = '';     $this->url_base = "http://".$user.".".$_SERVER['HTTP_HOST'].$server_info."/";     }     
else      $new_url = $url_conversion['url_subdirectory'];      }    else   
 {     
$new_url = $url_conversion['url_regular'];             }
$num_args = func_num_args();   
$search = Array('$user'); 
$replace = Array($user);   for($a=2;$a<$num_args;$a++)   
{     
$search[] = '$id'.($a-1);   
$replace[] = func_get_arg($a);   
$arg.=func_get_arg($a);   }       
$new_url = str_replace($search,
$replace, $new_url);      return
$this->url_base.$new_url; }


aber trotzdem vielen dank für den denkanstoss :-)
restinpeace
 
Posts: 3
Joined: 23. March 2010 12:20


Return to Apache

Who is online

Users browsing this forum: No registered users and 159 guests