2014-02-06 6 views
0

У меня есть папка с ресурсами на моем веб-сервере, которая содержит такие файлы, как javascript, css и глубокий уровень других папок. Когда пользователь пытается получить доступ к этой папке, используя URL, как:URL-адрес перезаписи для каталогов вложенных уровней

www.example.com/assets 

Я показываю то 404.html файл, который легко сделать, как:

RewriteEngine On 
RewriteRule ^/assets/$ /404.html [NC,L] 

Но, как я сказал ему несколько папку внутри него, также для которых показана ошибка 404. Я не хочу писать правило перезаписи для всех папок внутри него (потому что их много). Я начинаю переписывать URL-адреса, может ли кто-нибудь показать мне, как я могу добиться этого с помощью строки или двух строк кода.

ответ

0

Добавить строку:

RewriteRule ^/assets/(([^/]*)/)+$ /404.html 

который будет соответствовать/активов/{ничего}/{ничего}/{ничего}/...

+1

он будет соответствовать/assets/{anything}/but not/assets/{anything}/{anything}/{anything} .. Я имею в виду, что это многоуровневые каталоги, и я хочу, чтобы пользователь имел доступ к любому из этих пока его файл –

0

Если Вы желаете, чтобы посетители из листинга файлы в ваших каталогах, вы можете использовать

Options -Indexes 

в файле .htaccess.

+0

Это не похоже на показ ошибки 404. – Michael

+0

Да, это так, но я думал, что это имеет отношение к тому, что ОП может пытаться достичь –

0

Вам просто нужно это правило направить все /assets/* запросы /404.html:

RewriteRule ^assets(/|$) /404.html [NC,L] 

Убедитесь, что это правило ваше первое правило.

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