2015-10-27 2 views
0

Пытаясь защитить прямой доступ к PHP файлов в HTAccess с:Перезарядка страница с заголовком не работает, если защитные PHP файлы

RewriteCond %{THE_REQUEST} ^.+?\ [^?]+\.php[?\ ] 
RewriteRule \.php$ - [F] 

Все работает отлично, для страниц с помощью обновления, за исключением/перезагрузки через заголовок:

header("Location: $exampleurl"); 

Может ли кто-нибудь помочь? Thx заранее.

PS: bonus question: есть ли какое-то правило для блокировки массивного доступа (слишком много запросов aka DDOS) из прокси-сервера через HTTP?

+0

Просьбы разъяснить, что происходит в обеих случаях вы описываете. –

+0

Луис: если я использую код htaccess выше, я получаю (550 Access Denied) для любой страницы, используя php header() redirect [перенаправление с страницы]. Это выглядит как проблема междоменной или перекрестной ссылки или что-то в этом роде. –

+0

И каково местоположение, на которое они должны перенаправляться? –

ответ

1

Если вы хотите, чтобы получить путь, показанный в браузере в PHP, чтобы передать его на переадресацию, используйте $_SERVER['REQUEST_URI'] или $_SERVER['REDIRECT_URL']

+0

Я в порядке с прохождением красивого SEF url, вместо пути с строкой запроса.thx –

+0

знаете ли вы, как исключить определенный файл php из этого набора правил? Мне нужно исключить все PHP-файлы cron job, поэтому они не блокируются этим правилом (запрещают прямой доступ к файлам php) - 'RewriteCond% {THE_REQUEST} ^. +? \ [^?] + \. Php [? \ ] RewriteRule \ .php $ - [F] ' –

+0

Пожалуйста, задайте новый вопрос, если это не ваш оригинал. –

0

Я только что выяснил, в чем проблема: header(); не проблема. Проблема в том, что вы не можете использовать [PHP_SELF] в проходящей форме, но полный путь к странице, с которой вы вызываете эту форму. Я думаю, [PHP_SELF] использует example.com/page.php?ab=123, но я пытался пройти example.com/page/123/.

+0

Вы попали туда. '[PHP_SELF]' будет передавать путь вашего доступа, который является 'example.com/page.php? Ab = 123', хотя ваш браузер показывает' example.com/page/123/' –

+0

Yup. Мы узнаем каждый день что-то новое :-) –

+0

Проверьте мой ответ на альтернативный способ '[PHP_SELF]', который будет работать :) –

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