Apache, .htaccess - запрещает прямой доступ к файлу, но разрешает переписывать туда - PullRequest
0 голосов
/ 11 марта 2009

Я понял, как написать что-то вроде

 www.test.com/test 

до

 www.test.com/test.php. 

Это полезно, чтобы упростить работу в Интернете и скрыть использование PHP. Однако я бы хотел пойти дальше и запретить доступ к

 www.test.com/test.php 

полностью, и разрешить доступ только через

 www.test.com/test 

для того, чтобы люди не могли открыть для себя использование PHP, просто попробовав его в URL.

Проблема в том, что если я не разрешу доступ к

 www.test.com/test.php

, затем

 www.test.com/test 

больше не работает, так как правило запрета срабатывает после перезаписи на

 www.test.com/test.php 

сделано.

Возможно ли это сделать? Любые альтернативные предложения по сокрытию используемого языка программирования приветствуются.

Ответы [ 2 ]

1 голос
/ 11 марта 2009

Одна вещь, которую вы можете сделать, это найти PHP-файлы где-нибудь за пределами корня документа и использовать директиву AliasMatch. Если ваши файлы PHP находятся в /var/www-php/www.test.com, попробуйте

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

Обычно, когда вы хотите запретить доступ к файлам, кроме как при определенных условиях, хорошим способом для этого является перемещение их за пределы корня документа.

0 голосов
/ 11 марта 2009

Посмотрите на флаг "Последнее правило" и "Нет продолжения".

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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...