. Sayfa veya dizine url yeniden htaccess

3 Cevap php

Benim site için ben bir work.php dosyaya URL http://www.mysite.com/work işaret eden bir RewriteRule var. Ben de, vb project1.php, project2.php gibi o dosyaları var "iş" adlı bir dizin var ..

Hangi kurallara URL http://www.mysite.com/work work.php dosyasına gitmek için bilir, ama URL http://www.mysite.com/work/project1 Ben dizini "iş" içeri demek bilir ve böylece yazmak zorunda project1.php dosyasını görüntülemek?

EDIT: işaret olmalıdır, bu şu anda çalışıyorum budur:

RewriteEngine On
RewriteBase /beta/
RewriteRule ^([a-z]+)$ $1.php [L]

Bu güvenlik-bilge geliştirmek için herhangi bir ek ipuçları? (.. Vs, dizin atlama Durdurma)

3 Cevap

Bu deneyin:

RewriteEngin On
RewriteBase /
RewriteRule ^work$ /work.php [QSA,L]

O http://www.mysite.com/work (yok eğik çizgi) ve work.php dosyasına gitmek sağlayacaktır.

Ayrıca http://www.mysite.com/work/ (eğik çizgi ile) work.php gitmek istiyorsanız, sadece son RewriteRule Yukarıdaki bu satırı ekleyin.

RewriteRule ^work/$ /work [R=301,QSA,L]

İşte work.php dosyasını gösteren, dolayısıyla eğik çizgi ile URL'ye yönlendirir.

Zaten bir RewriteBase direktifi beri UPDATE:, sadece sağ RewriteBase sonra ancak {[önce RewriteRule satır (lar) koymak (2)]} kural olarak bir catch-all kullandığınızdan ve her maç olacak.

Bu sorunun cevabı. Bu benim için çalışıyor.

RewriteEngine On
RewriteBase /
RewriteRule ^([a-z]+)$ $1.php [L]

Sadece kaldırmak beta/

Bu kural deneyin:

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule .* $0.php [L]