Biraz Rodolphe adlı @ ve Galen'in cevaplarda @ üzerinde genişleyen.
Url yeniden yazma için ihtiyaçları sınırlı ise, bir .htaccess
Rodolphe adlı örnekte açıklandığı kuralları ile kodlanmış güzel yapacağız.
Galen anlaşılacağı gibi Ancak, sizin ihtiyaçlarınıza bilinmeyen olabilir, ya da siz onları çalışma var bir kere, sizin yeniden kurallarını dokunmaya gerek kalmadan, daha sonra onlara genişletmek isteyebilirsiniz.
Bunu yapmak için yaygın bir şekilde www.host.com/controller/action/parameter
bir URL şemasında etrafında uygulamanızı tasarlamaktır. Böyle bir URL bir örnek daha sonra, dahili çeşitli şekillerde ele alınması düşüren www.host.com/book/view/1
olabilir.
1)
Her denetleyici için ayrı komut dosyaları var. Daha sonra varsayılan denetleyici olmayan eşleşen veya geçerli olmayan istekleri yönlendirerek, forma $controller.php?action=$action¶m=$param
her isteğini yeniden.
# Serve files and directories as per usual,
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
# If the request uri doesn't end in .php
# and isn't empty, rewrite the url
RewriteCond %{REQUEST_URI} !.php$
RewriteCond %{REQUEST_URI} !^$
# Try matching against a param request first
RewriteRule (.*?)/(.*?)/(.*?) $1.php?action=$2¶m=$3 [L]
# If it didn't match, try to match an action
RewriteRule (.*?)/(.*?) $1.php?action=$2 [L]
# redirect all other requests to index.php,
# your default controller
RewriteRule .* index.php [L]
2)
Eğer her isteğini yönlendirmek tek bir giriş noktası (ya da bir ön denetleyicisi) var, ve bu ön kontrolör uygun denetleyiciye isteği yönlendirerek işler.
# Redirect all requests that isn't a file or
# directory to your front controller
RewriteCond %{REQUEST_URI} !-f
RewriteCond %{REQUEST_URI} !-d
RewriteRule .* index.php [L]
Jenerik dönüş kuralları varsayılan / ön denetleyicisi herhangi Parametes ekler olmaz. Bir dahili yönlendirme olduğundan Ancak, ne yaptığını ne olması gerektiğini belirlemek için PHP REQUEST_URI
erişimine sahip olacaktır.
Bu, doğal olarak, tek seçenek değildir. Sadece çorba benim 2 sent biraz daha heyecan.
Disclaimer:
All of the above rewrite rules (as well as everything else, of course) are written straight off the top of my head (after a few beers) and haven't been tested anywhere.