WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Fråga om RewriteRule (https://www.wn.se/forum/showthread.php?t=16228)

Dood 2006-09-14 15:53

Håller på och "leker" lite med RewriteRule för en server där jag vill att den ska ta det som skicka in efter domännamnet som en variabel till filen index.php enligt:

Besökaren anger adressen:

http://www.aaaaaa.se/1234

detta ska då automatiskt pekas om till

http://www.aaaaaa.se/index.php?id=1234

Helst vill jag att adressen inte ändrar sig utan fortfarande visar

http://www.aaaaaa.se/1234


Någon?

Tack på förhand!

WizKid 2006-09-14 16:26

Taget direkt hur huvudet så skulle det bli:
RewriteRule ^([\d]+)$ /index.php?id=$1 [L]

Dood 2006-09-14 16:30

Tack för ditt svar, resulterade tyvärr i:
HTTP 404 - File not found

etanders 2006-09-14 19:04

Jag är ingen expert, men i min .htaccess (som fungerar...) står det först

Options +FollowSymLinks
RewriteEngine On

och därefter kommer Rewrite-raderna.

Följande har jag inte testkört, men jag skulle formulera regeln som

RewriteRule ^(\d+)$ /index.php?id=$1 [L]

grazzy 2006-09-14 19:13

Testa [0-9]+ istället för \d+ .. htaccess tar inte perl regexp av nån anledning.

etanders 2006-09-14 19:40

Det måste vara olika i så fall. Min .htaccess innehåller \d

grazzy 2006-09-14 19:48

Yupp, inte omöjligt att det har ändrats mellan 1.3- och 2.0-serien tex.

Dood 2006-09-29 11:56

Hmmm... Jag får det ändå inte att fungera.
Det verkar som om rewrite-regeln också appliceras de gånger jag endast går in på domännamnet (utan index.php eller annat efter domännamnet). Detta gör att den loopar och hänger sig.

Jag vill ju endast att rewrite-regeln ska träda i kraft om man anger något efter domännamnet och det inte är en php-fil som finns. Bör jag istället göra en lösning på att fånga upp 404 till en fil och läsa av URL'en och skicka detta till index.php?

Någon som använder sig av 404'an på detta sätt? Är det att rekommendera eller ej?

kers 2006-09-29 13:14

Citat:

Originally posted by Dood@Sep 29 2006, 11:56

Jag vill ju endast att rewrite-regeln ska träda i kraft om man anger något efter domännamnet och det inte är en php-fil som finns.

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

är vad du behöver

Citat:


Bör jag istället göra en lösning på att fånga upp 404 till en fil och läsa av URLen och skicka detta till index.php?
Någon som använder sig av 404an på detta sätt? Är det att rekommendera eller ej?

om du vill fånga upp besökarna och sökmotorer på det sättet så är det värt att komma ihåg att webbservern isf skickar ut 404-headers vilket leder till att sökmotorn kommer att stanna där.

phict 2006-10-02 22:19

Jag använder:
RewriteEngine On
RewriteRule ^(.*)\/$ index.php?$1

och sen parserar requesten i php via $_SERVER-variablerna som sätts.


Alla tider är GMT +2. Klockan är nu 05:06.

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