2016-04-10 17 views
1

ben aşağıdaki gibi adresler ile makalelerin bir veritabanına sahip:Codeigniter ile çizgi izleyen Kulp 3

person/albert-einstein/ (Sondaki eğik çizgi)

person/albert-einstein/1 (hayır eğik çizgi)

Ve bende merak ediyordum Codeigniter 3'teki url frakslarını işlemenin en iyi yolu?

Bu benim yaptığım budur/şimdiye kadar testi: Şimdi

echo site_url('person/albert-einstein/'); # http://localhost/person/albert-einstein/        
echo base_url('person/albert-einstein/'); # http://localhost/person/albert-einstein        
echo site_url('person/albert-einstein/1'); # http://localhost/person/albert-einstein/1/    
echo base_url('person/albert-einstein/1'); # http://localhost/person/albert-einstein/1 

: URL'ler

$config['url_suffix'] = '/'; 

ve yeniden basılmış:

echo site_url('person/albert-einstein/'); # http://localhost/person/albert-einstein        
echo base_url('person/albert-einstein/'); # http://localhost/person/albert-einstein        
echo site_url('person/albert-einstein/1'); # http://localhost/person/albert-einstein/1     
echo base_url('person/albert-einstein/1'); # http://localhost/person/albert-einstein/1 

Sonra ayarlamak için config.php düzenlenebilir URL'yi son eğik çizgi ile yazdırmak için site_url() veya base_url() seçebilir veya Onsuz. Ama şimdi benim görüşüme göre, hangisini kullandığım konusunda çok dikkatli olmalıyım ve geçtiğim URL'ye saygılı bir işlevi kullanmayı tercih ediyorum. sahip olmak.

Ve evet, yardımcısını kesinlikle genişletebilirim ve istediğim şeyi yapan print_url() gibi bir işlevi yazabilirim ama burada eksik bir şey olup olmadığını görmek istedim. Teşekkür ederim.

cevap

0

Sen sondaki eğik çizgi zorlamak için apache rewite kuralını kullanabilirsiniz: sondaki çıkarmadan için

RewriteCond %{REQUEST_URI} /+[^\.]+$ 
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] 

kullanabilirsiniz çizgi:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} (.+)/$ 
RewriteRule^%1 [R=301,L] 

Bu good base.htaccess parçacıkları kullanılır.

+0

Sorularıma olan ilginizden dolayı teşekkür ederim, ancak ** URL'leri ** ve/veya ** içermeyen ** URL'leri kullandığımı unutmayın. Yani 'mod_rewrite' kullanarak çözümünüz gerçekten bu soruya arkadaşım için geçerli değildir. :-) – gglasses

+0

Bu isteği takip ettim: "Geçtiğim URL'ye saygılı bir işlevi kullanmak istiyorum ve eğer yoksa, varsa veya eklemezse, izleyen eğik çizgi ile döndürmek istiyorum". İlk snippet buna izin verir. – Tpojka