Is dit moontlik om htaccess gebruik tot ses syfer aantal URL's as 404s stuur om 'n script maar hanteer alle ander ongeldig URLs?

StackOverflow https://stackoverflow.com/questions/73123

  •  09-06-2019
  •  | 
  •  

Vra

Is dit moontlik om htaccess gebruik om al ses syfer URLs verwerk deur dit te stuur na 'n script, maar hanteer elke ander ongeldig URL as 'n fout 404?

Byvoorbeeld:

http://mywebsite.com/132483

sou gestuur word aan:

http://mywebsite.com/scriptname.php?no=132483

maar

http://mywebsite.com/132483a or
http://mywebsite.com/asdf

sou hanteer as 'n 404-fout.

Ek het tans hierdie werk via 'n persoonlike PHP 404 script maar dit is soort van kludgy. Lyk vir my dat htaccess n meer elegante oplossing kan wees, maar ek het nie in staat was om uit te vind nie of dit selfs moontlik.

Was dit nuttig?

Oplossing

<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule ^([0-9]{6})$ scriptname.php?no=$1 [L]
</IfModule>

Om die skoon URL bewaar

http://mywebsite.com/132483

terwyl hy scriptname.php gebruik net [L]. Die gebruik van [R = 301] sal jy herlei na jou scriptname.php? Geen = xxx

//www.addedbytes:

Jy kan dit nuttig http vind com / aflaai / mod_rewrite-cheat-blad-v2 / pdf /

Ander wenke

In jou htaccess lêer, sit die volgende

RewriteEngine On
RewriteRule ^([0-9]{6})$ /scriptname.php?no=$1 [L]

Die eerste reël draai die mod_rewrite enjin op. Die () hakies sit die inhoud in $ 1 - opeenvolgende () sou vul $ 2, $ 3 ... en so aan. Die [0-9] {6} sê kyk vir 'n string presies 6 karakters lank met net karakters 0-9.

Die [L] aan die einde maak dit die laaste reël - indien dit van toepassing is, sal reël verwerking stop

.

O, die ^ en $ merk die begin en einde van die inkomende uri.

Hoop dit help!

Ja dit is moontlik met mod_rewrite. Daar is ton van goeie mod_rewrite tutoriale aanlyn 'n vinnige Google-soektog moet opdaag jou antwoord in no-time.

Basies wat jy gaan wil doen is verseker dat die gewone uitdrukking wat jy gebruik net is op soek na syfers en geen ander karakters en die lengte verseker 6. Dan sal jy herlei na scriptname.?no= met die nommer wat jy vasgevang.

Hoop dit help!

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top