Php блокирует доступ без перенаправленного .htaccess

#php #.htaccess

#php #.htaccess

Вопрос:

С перенаправлением htaccess im:

 RewriteRule ^secure/ login.php  [NC,L]
 

Я только хочу, чтобы людям было разрешено посещать: website.com/secure/
Но не: website.com/login.php

У кого-нибудь есть идея, как это сделать? Возможно, в php?

Комментарии:

1. !^/secure , то есть хиты, которые НЕ включены / защищены, перенаправляются?

Ответ №1:

Вы можете использовать:

 RewriteEngine On

# block direct access to /login.php
# RewriteRule ^ - [F] line sends status 403 when RewriteCond succeeds.    
RewriteCond %{THE_REQUEST} /login.php[s?/] [NC]
RewriteRule ^ - [F]

# internally rewrite /secure to /login.php
RewriteRule ^secure/?$ login.php [NC,L]
 

Первое правило — использовать THE_REQUEST переменную. THE_REQUEST переменная представляет исходный запрос, полученный Apache из вашего браузера, и он не перезаписывается после выполнения некоторых правил перезаписи. Примерное значение этой переменной GET /index.php?id=123 HTTP/1.1

Комментарии:

1. RewriteRule ^ — [F]

2. Я добавил больше деталей в ответ.