Apache yapılandırmaları erişimi olmadan PHP temiz URL'ler

3 Cevap php

Ben temiz URL'ler (www.mysite.com/getarticle/123 vs www.mysite.com/getarticle?a=123) getting tüm kanonik yolları farkında değilim.

Bu çözümler çoğunlukla, mod_rewrite, force_type ve apache çeşitli yapılandırmaları içerir.

Ben hosting böyle config erişimi yok, herhangi bir çözüm / sınırlamaya çözüm için kesmek ve iş halletmek var? Teşekkürler.

3 Cevap

Evet.

Bir yoluyla komut ararsan, www.example.com/index.php/my/path/here Eğer $_SERVER den oldukça kolay talep yolunu alabilirsiniz. Ben şahsen $_SERVER['PHP_SELF'] kullanabilirsiniz ama kullanmak PHP sürümüne bağlı olarak seçim için birkaç vardır.

Sadece emin olmak için - Eğer mod_rewrite kullanamazsınız emin misin?

Eğer kuruluysa / hosting sunucu üzerinde etkin, sadece yeniden yazma kuralları içinde ile public_html dizininde bir. Htaccess dosyası koyabilirsiniz. Gerçek apache yapılandırmasını değiştirmek gerek yok.

Sen sistem bağımlı sistemi doğru onları idare edemez eğer başka URL'leri kullanamazsınız. Ve webserver'lerin doğal bir davranış, bir-bir dosya sistemi üzerine istenilen URL yolunu haritasına etmektir.

Ama çoğu web sunucuları, böyle şeyler izin dosya sistemi üzerine belirli kurallar yardımı ile istenen URL yolu haritasına bazı özellikleri sağlar.

Apache örneğin var AcceptPathInfo to append additional path segments after a URL path that already references an existing file while preserving that information (see PATH_INFO envirnoment değişken) ve mod_rewrite daha işlevsellik için.