2010-09-24 3 views
0

Я использую .htaccess RewriteRule на веб-сайте, над которым я работаю.Обнаружить, если страница была вызвана через .htaccess RewriteRule в PHP

Вот пример моего .htaccess

RewriteEngine on 
RewriteRule ^about.htm$ /index.php?load=about&output=html [NC] 

Я хотел бы знать, если есть способ в моем index.php файла для обнаружения если страница была вызвана с помощью Rewrite или пользователь достиг его напрямую. Я пытаюсь избежать необходимости писать некоторые проверки безопасности, что Я даже не уверен, с чего начать.

Если нет способа сделать эту «проверку», где я должен начать защищать файл?

Мое предположение было бы, чтобы убедиться, что только load и output будут переданы $_GET, сделать strip_tags(), trim(), stripslashes() и удалить кавычки.

Спасибо!

ответ

1

Ищите REDIRECT_URL или REDIRECT_STATUS в глобальном $ _SERVER. mod_rewrite должен добавить их.

+0

Эй, это было быстро! Но теперь я задаюсь вопросом, хорош ли мой паттерн в том случае, если я должен был сам обеспечить безопасность. Есть идеи? Я отвечу на ваш ответ в нескольких случаях. – Cybrix

+0

Нет проблем. mod_rewrite - мощный моджо. Моя единственная мысль, глядя на поставляемый образец, состоит в том, что это может быть проще. Если бы я был вами, я бы посмотрел на выдающиеся примеры, такие как файл .htaccess, используемый Zend Framework, Drupal и т. Д. ZF htaccess довольно прост и в основном отправляет все в index.php, который не является фактическим файлом или каталогом. Таким образом, вы можете просто использовать/about (или /about.htm) в качестве своего URL-адреса и позволить index.php анализировать REQUEST_URI путем разделения на «/» s. – bogeymin

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