2012-01-18 3 views
2

Мой сайт построен на многих страницах, эти страницы разделены на две категории, один - на «html» файлы и «основные» файлы, содержащие функции и код на стороне сервера, который является файлом «html» нужны, их оба файла PHP.PHP: блокировать запросы браузера

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

Я хочу, чтобы «основные» файлы могли открываться только в том случае, если файлы «html» запросили их, иначе он покажет ошибку 404, возможно ли это?

примечание *: я сказал ранее, что «html» и «core» файлы являются файлами PHP.

благодарим вас заранее!

+0

Это фактически настройка сервера, а не на самом деле PHP вопрос. Возможно, вы захотите перенести его на другой сайт StackExchange –

+0

Я действительно ничего не знаю на серверах, мне интересно сделать это в php, если это возможно. –

ответ

3

Сделайте код проверки в своем ядре.

Что-то вроде, подтвердите константу «html», если она определена, затем запустите код, если нет, а затем выбросите ошибку 404.

http://br2.php.net/manual/pt_BR/function.constant.php

Другой способ заключается в блокировании с помощью Htaccess, если вы используете сервер Apache.

HTML (PHP файл)

define('HTML'); 

ядро ​​(файл PHP)

if(!defined('HTML')) { /* Display 404 error */ } 
1

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

2

Вы можете использовать .htaccess для ограничения доступа к файлам, о которых идет речь.

например. Если «основные файлы» имеют расширение .php, а все остальные имеют .html, вы можете добавить в файл .htaccess что-то вроде:

<Files ~ "\.php$"> 
Order allow,deny 
Deny from all 
</Files> 

Или, если все ваши «основные файлы» находятся в директории, которую вы могли бы ограничить доступ, введя

<Directory ~ "\core"> 
Order allow,deny 
Deny from all 
</Directory> 

Запомнить иметь AllowOveride Все в порядке для апача, чтобы использовать .htaccess вы указали.

+0

Как я уже сказал в сообщении, они оба являются файлами PHP, которые называются «html», потому что они содержат html-код. я рассмотрю свои варианты, и если у меня нет никого в php, я поеду на htaccess, спасибо за быстрый повтор. –

+0

@MorSela Извините, я пропустил это! :) Вы можете переименовать свои основные файлы в .inc.php и применить ограничение, как указано выше, или переместить их в отдельный каталог и ограничить это. Концепция определения, упомянутого GabrielGartz, также является жизнеспособным решением – mobius

Смежные вопросы