* Yönlendirme. Php URL temizlemek için

3 Cevap php

Benim htaccess oldukça çalışmıyor:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.php$ /blah/$1 [R=301,L]
RewriteRule ^(.*)$ /blah/index.php/$1 [L]

Temelde / blah / about.php / blah / yaklaşık yönlendirmelidir

Son satırı URL işlemek için gereklidir yüzden CodeIgniter'ı kullanıyorum.

Yönlendirme çalışıyor ama vesaire / in / yaklaşık bir iç sunucu hatası alıyorum

** Düzenleme - hata günlüğü:

Talep nedeniyle olası yapılandırma hatası 10 dahili yönlendirmelerin sınırını aştı. Gerekirse sınırını artırmak için 'LimitInternalRecursion' kullanın. Bir hata izleme raporu almak için 'LogLevel hata ayıklama' kullanın.

3 Cevap

Onun yardım için Cryo @ teşekkürler, bu düzeltme:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)\.php$ /blah/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /blah/index.php/$1 [L]

Ben sadece olmak için son satırı değiştirmeniz gerektiğini düşünüyorum:

RewriteRule ^(.*)$ /blah/index.php?/$1 [L]

Ben CodeIgniter ile belirli bir deneyim var ama genellikle çerçeveler bir merkezi kontrolör (index.php) aracılığıyla tüm istekleri itin ve orada içinde isteğin URL ayrıştırma istiyorum.

EDIT: Sadece buradan örnek ile benim cevap güncelleme: http://codeigniter.com/wiki/mod_rewrite/, bu CodeIgniter bunu istiyor nasıl olmalıdır.

GÜNCELLEME: Muhtemelen sadece ilk uygulanır, ikinci RewriteRule için RewriteConds çoğaltmak gerekir:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\.php$ /blah/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /blah/index.php/$1 [L]

Ne hakkında:

RewriteRule ^(.*)(\.php)?$ /blah/index.php/$1 [L]

ve önceki satırını kaldırın.

Ayrıca emin /blah/about.php yok emin olun.