Как я могу перенаправить или создать псевдоним для каталогов моих веб-сайтов?

Реальная структура каталогов:

http://example.com/directory1/directory2/directory3/hiddendirectory/directory4/

Мне нужно, чтобы файл открывался как:

http://example.com/hiddendirectory/directory4/

в браузере, но на самом деле каталог все еще находится на первом месте.

Я нахожусь на виртуальном хостинге с hostgator и не имею полных привилегий, поэтому я не могу запускать какие-либо скрипты.

Я провел некоторое исследование и пытался создать псевдоним, но у меня ничего не получилось.

Вот что я поместил в файл .htaccess:

Alias /hiddendirectory/directory4 /directory1/directory2/directory3/hiddendirectory/directory4

Но я всегда получаю ошибку сервера 500. Любой совет будет принят во внимание.


person David    schedule 22.01.2016    source источник
comment
Возможный дубликат Удалить каталог из URL-адреса с помощью   -  person AddWeb Solution Pvt Ltd    schedule 22.01.2016
comment
Да, я проверил это, к сожалению, ничего не могу заставить работать.   -  person David    schedule 22.01.2016


Ответы (1)


Директива Alias ​​работает в контексте конфигурации сервера, а не в htaccess.

В htaccess вы можете использовать mod_rewrite для перезаписи ваших каталогов.

 RewriteEngine On

 RewriteRule ^hiddendir/dir4/?$ /dir1/dir2/dir3/hiddendir/dir4 [NC,L]

Это перепишет

/hiddendir/dir4/

to

/dir1/dir2/dir3/hiddendir/dir4
person Amit Verma    schedule 22.01.2016
comment
Спасибо, старкин - попробовал ваше решение, но теперь я получаю ошибку 404. Может быть, мне нужно найти место директивы Alias ​​в конфигурации сервера, как вы упомянули - /etc/httpd/conf/httpd.conf - это правильный файл? Также для директивы псевдонима мне нужно будет изменить разрешения или мой синтаксис хорош? - person David; 22.01.2016
comment
@ Дэвид, да, синтаксис вашего псевдонима правильный. Пожалуйста, прочтите руководство для получения дополнительной информации о директиве alias и aliasMatch. http://httpd.apache.org/docs/2.2/mod/mod_alias.html - person Amit Verma; 22.01.2016