WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   /<username> ála Lunarstorm (https://www.wn.se/forum/showthread.php?t=19186)

Kaktus 2007-02-08 12:46

Hej

Jag håller på att utveckla ett commnity och kunden vill att man ska kunna ska kunna nå communityts users via "/username" alltså t.ex: www.community.se/nicklas

Är det någon som har någon fiffig lösning på detta?


(Enda jag har kommit på är att skapa filen (/nicklas/index.php {<?php header( "Location: ..... " ); ?> })

Men vill gärna ha en lösning som inte innebär att stöka ner hela webroot:en...


Tack på förhand!!

Helix 2007-02-08 12:48

mod_rewrite lösning?

Frej 2007-02-08 13:04

språk?

PHP: mod_rewrite
ASP.NET: global.asax

stakes 2007-02-08 13:31

Mod rewrite är lösningen:

t.ex. Skapa filen .htaccess och lägg den där du vill att reglerna ska gälla.

RewriteEngine on
RewriteRule ^test/$ /test.php [T=application/x-httpd-php]

gör så att länken test.php går till /test/

Läs mer här:

http://www.modrewrite.com/

mvh

Daniel

eg0master 2007-02-08 14:44

Nu är jag ingen hjälte på modrewrite men kräver inte den lösningen som presenteras att man i htaccess känner till namnet på alla användare?

En annan klassisk variant är en egen 404 handler (kanm även den sättas upp med htaccess) som kollar vilken katalog man försöker komma till, kollar om det finns en användare med det namnet och redirectar i så fall dit.

jahaa 2007-02-08 15:41

Citat:

Originally posted by eg0master@Feb 8 2007, 14:44
Nu är jag ingen hjälte på modrewrite men kräver inte den lösningen som presenteras att man i htaccess känner till namnet på alla användare?
En annan klassisk variant är en egen 404 handler (kanm även den sättas upp med htaccess) som kollar vilken katalog man försöker komma till, kollar om det finns en användare med det namnet och redirectar i så fall dit.

Nope, mod_rewrite använder regexp som man sedan använder i den url som skickas till vald sida.

RewriteRule ^/([a-z0-9-_]+)$ /profile.php?username=$1

Bara skissad regexp men förklarar det jag vill ;)

eg0master 2007-02-08 18:12

Citat:

Originally posted by jahaa@Feb 8 2007, 16:41
RewriteRule ^/([a-z0-9-_]+)$ /profile.php?username=$1

Självklart är det så... Korkat av mig att inte reflektera över regexp...

Man lär väl dock "excluda" en del så att inte foldern "images" rewritas till "profile.php?username=images"?
Antar att mod_rewrite även inte gör:
/somepage.php -> /profile.php?username=somepage.php

mod_rewrite ändrar bara sådant som inte matchar en riktig fil antar jag?

jahaa 2007-02-08 19:52

Citat:

Ursprungligen postat av eg0master
Citat:

Ursprungligen postat av jahaa
RewriteRule ^/([a-z0-9-_]+) /profile.php?username=1

Självklart är det så... Korkat av mig att inte reflektera över regexp...
Man lär väl dock excluda en del så att inte foldern images rewritas till profile.php?username=images?
Antar att mod_rewrite även inte gör:
/somepage.php - /profile.php?username=somepage.php
mod_rewrite ändrar bara sådant som inte matchar en riktig fil antar jag?

Om du ska visa en bild så matchar inte den länken regexpen i alla fall. Sedan får man givetvis skräddarsy sina regexp och antagligen lägga till flertalet "Rewrite rules".

Kaktus 2007-02-09 10:49

Citat:

Originally posted by Terabyte@Feb 8 2007, 13:48
mod_rewrite lösning?

Kan inte mycket mer om mod_rewrite än att det finns. Jag ska genast läsa på om det! Tack!

Kaktus 2007-02-09 10:50

Citat:

Originally posted by Frej@Feb 8 2007, 14:04
språk?
PHP: mod_rewrite
ASP.NET: global.asax

php :)


Alla tider är GMT +2. Klockan är nu 19:13.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson