È possibile utilizzare .htaccess per inviare sei cifre del numero di Url di una sceneggiatura, ma di gestire tutte le altre voci Url 404?
Domanda
È possibile utilizzare .htaccess per elaborare tutte le sei cifre, Url, mediante l'invio di una sceneggiatura, ma di gestire ogni altro URL non valido come errore 404?
Per esempio:
http://mywebsite.com/132483
vorresti essere inviate a:
http://mywebsite.com/scriptname.php?no=132483
ma
http://mywebsite.com/132483a or
http://mywebsite.com/asdf
vorresti essere trattato come un errore 404.
Io attualmente lavoro tramite PHP personalizzato 404 script ma è un po ' difettose.A me sembra che .htaccess potrebbe essere una soluzione più elegante, ma non sono stato in grado di capire se è ancora possibile.
Soluzione
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([0-9]{6})$ scriptname.php?no=$1 [L]
</IfModule>
Per preservare la pulizia URL
http://mywebsite.com/132483
mentre serve scriptname.php utilizzare solo [L].Con [R=301] visualizzerà il nomescript.php?no=xxx
Si possono trovare utile http://www.addedbytes.com/download/mod_rewrite-cheat-sheet-v2/pdf/
Altri suggerimenti
Nel file htaccess, inserire il seguente
RewriteEngine On
RewriteRule ^([0-9]{6})$ /scriptname.php?no=$1 [L]
La prima riga diventa il mod_rewrite motore.L' () staffe di mettere il contenuto in $1 - successive () avrebbero popolato $2, $3...e così via.Il [0-9]{6} dice di cercare una stringa di esattamente 6 caratteri contenente solo caratteri numerici (0-9).
Il [L] alla fine rende questa ultima regola - se si applica la regola di elaborazione si ferma.
Oh, i ^ e $ segnare l'inizio e la fine di uri in arrivo.
Speranza che aiuta!
Sì, è possibile con il mod_rewrite.Ci sono tonnellate di buoni di mod_rewrite tutorial online una rapida ricerca su Google dovrebbe risultare la vostra risposta in pochissimo tempo.
In pratica ciò che si sta andando a voler fare è garantire che l'espressione regolare che si utilizza è solo in cerca di cifre e non di altri personaggi e per garantire la lunghezza è di 6.Poi ti reindirizza a nomescript.?n= il numero che hai catturato.
Spero che questo aiuta!