2009-03-11 14 views
0

Apache, .htaccess - Bir dosyaya doğrudan erişimi yasaklamak, ancak yeniden yazmaların oraya gitmesine izin vermek

 www.test.com/test 

 www.test.com/test.php. 

gibi bir şeyi nasıl yazabileceğimi anladım. Bu, daha basit bir tarama deneyimi sunmak ve PHP kullanımını engellemek için kullanışlıdır. Ancak, daha uzaklara gitmek ve

 www.test.com/test.php 

'e erişimi engellemek ve sadece

 www.test.com/test 

aracılığıyla erişime izin vermek istiyorum. bir URL.

Sorun şu ki

 www.test.com/test.php 

erişimini reddedersem,

 www.test.com/test 

artık çalışmıyor, çünkü

 www.test.com/test.php 

yeniden yazma işleminden sonra disallow kuralı tetikleniyor yapılır.

Bunu yapmak mümkün mü? Kullanılan programlama dilini gizlemek için alternatif öneriler kabul edilir.

cevap

0

"Son kural" ve "devam yok" bayrağına bakın. Yapabileceğin

http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html

This is an example to block certain domains from hotlinking to your images. 
You could apply it to your case (the NC flags is important) : 

    RewriteCond %{HTTP_REFERER} !^http://(www\.)?leech_site\.com/ [NC] 
    RewriteRule \.(gif|jpg|png)$ - [F,L] 
1

Bir şey PHP belge kökünün dışında bir yere dosyaları bulmak ve bir AliasMatch yönergesi olduğunu. PHP dosyaları /var/www-php/www.test.com iseniz belirli koşullar dışında dosyalara erişimine izin istediklerinde belge kök dışında taşıyarak, Genellikle

AliasMatch ^(.*)$ /var/www-php/www.test.com/$1.php 

deneyin bunu yapmak için iyi bir yoldur.

İlgili konular