![]() |
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!! |
mod_rewrite lösning?
|
språk?
PHP: mod_rewrite ASP.NET: global.asax |
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 |
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. |
Citat:
RewriteRule ^/([a-z0-9-_]+)$ /profile.php?username=$1 Bara skissad regexp men förklarar det jag vill ;) |
Citat:
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? |
Citat:
|
Citat:
|
Citat:
|
Citat:
Men fattar inte riktigt det där med hur det fungerar när man skriver in en katalog som finns på riktigt. Som sagt ska läsa om om mod_rewrite innan jag börjar ställa massa dumma frågor! |
Citat:
|
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule .* din-php-404-sida.php [QSA,L] |
Kaktus:
Eftersom du kör php antar jag även apache: Lägg till (om du inte har det redan) en .htaccess i rooten med följande innehåll: Kod:
ErrorDocument 404 /404.php Den URL som efterfrågas hittar du i $_SERVER['REQUEST_URI'] och det är bara att parsa den efter eget behag. En viktig sak dock: Om du redirectar till en OK sida måste du skriva om statuskoden med: Kod:
header('HTTP/1.1 200 OK'); Om du verkligen vill att det skall vara ett 404 fel är det bara att skriva ut som vanligt. Ett exempel på vad du får ut finns här: http://plugincms.com/Test404/Jag+gillar+WN |
Vad är det för fel på det jag ovan skrev? Är det någon nämnvärd skillnad?
|
Citat:
Men om mod_rewrite är ett alternativ så skall man definitivt överväga det i första hand eftersom jag misstänker att prestenda blir betydligt bättre med det. |
Citat:
|
Citat:
|
Citat:
Tack! |
Jag vill tacka för alla urbra svar! Jag kan inte lova att jag återkommer mer på denna tåden, nu ska jag utforska allt ni lärt mig! Tack!
|
Alla tider är GMT +2. Klockan är nu 05:37. |
Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson