Yeniden için URL yeniden yazma kodu

2 Cevap php

i php bir site için çalışıyorum ..... ben url yeniden yazmak istiyorum

e.g www.3idiots.co.in/stories.php?id=17

i olarak yeniden yazmak istiyorsanız

www.3idiots.co.in/stories/17.html

herhangi biri bana. htaccess dosyasına yazmak için bu için kod söyleyebilir.?

2 Cevap

Ben mod_rewrite Apache kullanıyorsanız varsayarak yaşıyorum. Gibi bir şey

RewriteEngine On
RewriteRule ^/stories/([0-9]+)\.html /stories.php?id=$1

hile yapmak gerekir. Tabii ki RewriteRule bu dizinde izin olduğundan emin olmak gerekir. this wiki page daha fazla bilgi için bkz.

mod_rewrite sadece / yönlendirme talep URI'larını değil, HTML belgelerinde olanlar yazabilirsiniz. Böylece ilk PHP uygulama doğru URI'lere baskı olduğundan emin olmanız gerekir, bu yüzden /stories/17.html yerine /stories.php?id=17.

Bundan sonra, kural kullanabilirsiniz suggested by José Basilio:

RewriteRule ^stories/([0-9]+)\.html$ stories.php?id=$1

Dahili geri /stories.php?id=17 dışarıdan /stories/17.html ve daha sonra istekleri yönlendirme /stories.php?id=17 mümkün olsa da iki kere gibi birçok talepleri neden olacak gibi, bu iyi bir uygulama değil. Ama burada bunun için kural:

RewriteCond %{THE_REQUEST} ^GET\ /stories\.php[?\s]
RewriteCond %{QUERY_STRING} ^(([^&]*&)*)id=([0-9]+)&*([^&].*)?$
RewriteRule ^stories\.php$ /stories/%3.html?%1%4 [L,R=301]