Bir komut dosyası için altı haneli bir sayıdır URL'leri göndermek için. Htaccess kullanabilirsiniz ama 404s gibi diğer tüm geçersiz URL'leri işlemek mümkün mü?

3 Cevap php

Bir komut göndererek altı haneli URL'leri işlemek için. Htaccess kullanabilirsiniz, ancak bir hata 404 gibi diğer her geçersiz URL işlemek mümkün mü?

Örneğin:

http://mywebsite.com/132483

: gönderilen olurdu

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

ancak

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

404 hata olarak ele olacaktır.

I presently have this working via a custom PHP 404 script ancak it's kind of kludgy. Seems to me that .htaccess might be a more elegant solution, ancak I haven't been able to figure out if it's even possible.

3 Cevap

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

Temiz URL'yi korumak için

http://mywebsite.com/132483

while serving scriptname.php use only [L]. Using [R=301] will redirect you to your scriptname.php?no=xxx

Bu kullanışlı http://www.addedbytes.com/download/mod_rewrite-cheat-sheet-v2/pdf/ bulabilirsiniz

Lütfen htaccess dosyasında, aşağıdaki koymak

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

İlk satır üzerinde mod_rewrite motoru döner. () Parantez $ 1 içine içeriğini koymak - ardışık () böylece $ 2, $ 3 ... doldurmak ve olacaktır. [0-9] {6} tam 6 karakter uzunluğunda, sadece 0-9 karakterleri içeren bir dize arayın diyor.

Sonunda [L] Bu son kural yapar - bu geçerli ise, kural işlem duracaktır.

Oh, ^ ve $ gelen Uri başlangıcını ve sonunu işaretlemelisiniz.

Umarım ki olur!

Evet mod_rewrite ile mümkündür. Hızlı bir Google arama hiçbir zaman cevap açmak gerekir çevrimiçi iyi mod_rewrite öğreticiler ton vardır.

Temelde ne yapmak istediğiniz için gidiyoruz kullandığınız düzenli ifade sadece rakamlardan ve başka karakterler arıyor sağlamak ve uzunluğu 6 sağlamaktır. Sonra Betikadi yönlendirmek gerekir.? No = sayı sizinle Yakalanan.

Bu yardımcı olur umarım!