2015-10-11 5 views
0

Я переместил все файлы/папки в корневой к папке v1.0 и используется следующее:мод структура каталога переписывают скрыть

RewriteCond $1 !^v1.0/ 
RewriteRule ^/?(.*) v1.0/$1 [L] 

Это работает и теперь сайт получает доступ к файлам внутри v1.0. Проблема заключается в прямом доступе к папкам.

Это: http://example.com/includes (включает в себя существует)

вперед URL-адрес для

http://example.com/v1.0/includes и показывает эту ошибку:

Forbidden 

You don't have permission to access /v1.0/includes/ on this server. 

Как не структура папок будет разоблачена, как в URL и в сообщении об ошибке?

+0

Is '/ v1.0/includes /' настоящий каталог? Можете ли вы показать свой полный .htaccess, отредактировав вопрос. – anubhava

ответ

0

Поскольку вы отметили .htaccess, я предполагаю, что у вас есть ваше правило в вашем .htaccess. В этом контексте первый аргумент RewriteRule будет соответствовать URL-адресу, который гарантированно начнется с косой черты, поскольку это часть общего префикса.

Я думаю, что самым простым решением является добавление пользовательских страниц ошибок для запрещенных и не найденных ошибок. Для получения дополнительной информации см. Директиву ErrorDocument.

ErrorDocument 403 /v1.0/errordocuments/403.php 
ErrorDocument 404 /v1.0/errordocuments/404.php 

Затем сделайте эти страницы с соответствующей информацией, которую вы хотите показать.

+0

Да, я сделал это с 404, и, вероятно, будет делать и с 403. Но структура папок все еще отображается в URL-адресе. – Yeti

+0

Ваше правило делает внутреннюю переписку, а не перенаправление. Если URL-адрес отображается в адресной строке (а не только на корпусе ошибки), происходит перенаправление. Откуда происходит это перенаправление? – Sumurai8

+0

Когда я вхожу в http: // example.com/includes' в строке URL браузера, он перенаправляется на http: // example.com/v1.0/includes'. Я не хочу, чтобы кто-нибудь видел 'v1.0'. – Yeti

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