Переписать правила, чтобы скрыть URL - PullRequest
3 голосов
/ 26 июня 2011

Мне нужно скрыть полный путь и вскоре показать:

www.site.com/this/is/path/to/hide/page.php -> www.site.com

Любая идея сделать это с .htaccess apache и правила перезаписи ??

ПРИМЕР :
Если я наберу www.site.com, я хочу открыть index.php (in /),
, но если я перехожу на /hidden/path, я хочу открыть file.php (в скрытом / пути)
управление URL браузера в www.site.com .


РЕДАКТИРОВАТЬ :
я хочу видеть в панели браузера www.site.com и хочу открыть страницу в /this/is/path/to/hide/page.php.

спасибо

Ответы [ 3 ]

2 голосов
/ 27 июня 2011

Как я объяснил в: Как работает перезапись URL-адреса? каждый перезапись вызывает новый вызов переписанного URL-адреса.(Код HTTP 3xx).

Таким образом, клиент запросит www.site.com/this/is/path/to/hide/page.php, будет перенаправлен на www.site.com и будет обслуживать страницу индекса как обычный пользователь.

НетЧтобы указать клиенту отображать один URL-адрес в строке браузера вместо другого, клиентский браузер всегда будет делать новый запрос.(Или вы можете выдать себя за любой сайт, например)

Если вы не против использования куки или можете использовать переменную окружения, вы можете сделать что-то вроде:

RewriteRule this/is/path/to/hide/page.php / [co:knowHiddenPath=true] 

Переменная окружения в том же синтаксисе с E вместо co.

(информацию о файлах cookie смотрите в http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html)

Ваша страница индекса должна затем проверить этот файл cookie / переменнуюобслуживать скрытую страницу или нет.

Другим решением было бы разрешить доступ с паролем к вашему файлу.Поэтому, даже если кто-то знает URL, он не получит доступ к файлу.Безопасность от безвестности не существует.

0 голосов
/ 26 июня 2011

Это будет использовать mod_rewrite , и вы можете поместить это в ваш .htaccess

# Activate Rewrite Engine
RewriteEngine On

# Home page rewrite rule
RewriteRule ^$ /this/is/path/to/hide/page.php [QSA,L]

Это будет работать ТОЛЬКО если вы нажмете на корень сайта (например, http://www.example.com/)

0 голосов
/ 26 июня 2011

Вы можете, я полагаю, сделать это с Псевдонимом ,

Alias / /this/is/path/to/hide/page.php

Эта директива должна быть в вашем <VirtualHost>

...