2011-12-23 8 views
6

Mod_rewrite kuralları ile ilgili bazı zorluklarım var. istek url www.example.com/dev/index.php olduğunda ben Örneğin.htaccess alt dizinden rütbelere yeniden yazın

www.example.com/* 

için

www.example.com/dev/* 

hiç bir talebi yeniden yazmak istiyorum, yanıt www.example.com/dev/index.php olmalı ve değil kökünden gibi url görünüyor sadece dizin, ancak kök dizinden index.php kullanıyor.

Ben

RedirectMatch (^/dev/)(.*) http://www.example.com/$2 

çalışır mod_alias denedi Ama mod_alias modülü ile ip adresi koşullarını uygulamak mümkün değildir, bu yüzden hala mod_rewrite ile bir çözüm gerekir.

Herhangi bir bilgi paylaşmak isteyen var mı lütfen? Teşekkürler.

cevap

8

Böyle bir şeye ne dersin?

RewriteRule ^dev/(.*)$ $1 

Bu kök klasöründe olması gerekir, ya da (değil .htaccess) birincil Apache yapılandırması başvurmuştur. .htaccess yönlendirmeler hakkında

zamanki kurallar geçerlidir - RewriteEngine on, Options FollowSymLinks ve AllowOverride FileInfo yere dahil olduğunu da dahil olmak üzere. Tüm detaylar http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewriterule.

+0

Hayır, herhangi bir şans değil. Belli dosya türlerine erişimi engellemek için kullanılan diğer kurallarla ilgili bir şey olup olmadığını merak ediyorum. Bu yüzden bu yeni kuralı RewriteBase/'in hemen altındaki ilk satıra yerleştirdim, fakat hala çalışmıyor. – vicch

+0

@vicch Bir '[L]' bayrakını eklemeyi deneyin, bu kuralı 'RewriteRule^dev /(.*)$ $ 1 [L] olarak değiştirin, bu nedenle diğer kuralları işlemez –

+0

Ne yazık ki, bu da çalışmıyor. – vicch