Is dit moontlik om htaccess gebruik tot ses syfer aantal URL's as 404s stuur om 'n script maar hanteer alle ander ongeldig URLs?
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.
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!