простой .htaccess переписать URL в другой каталог на одном сервере - PullRequest
2 голосов
/ 27 августа 2011

Ладно, я здесь невежественен ...

Мне нужно переписать структуру каталогов и все подкаталоги в ней в каталог на том же сервере, но в корне, который находится перед каталогом.

Например:

http://www.mydomain.com/Themes/default/css/folder

и все каталоги, вызываемые после папки. Например, folder/sub_folder или folder/afolder/anotherfolder, он должен включать подкаталоги ALL в каталоге folder.

следует перенаправить на это:

http://www.mydomain.com

Как мне это сделать с помощью файла .htaccess по пути folder http://www.mydomain.com/Themes/default/css/folder?

Пожалуйста, помогите кому-нибудь.

Спасибо, ребята:)

Файлы в структуре каталогов все еще должны быть доступны для этой структуры при вызове через PHP, но я не хочу, чтобы люди могли просматривать http://www.mydomain.com/Themes/default/css/folder и показывать все подкаталоги в этом пути к папке и / или все файлы , То же самое для всех подкаталогов, которые следуют по этому пути к папке.

Я бы хотел разместить файл .htaccess в каталоге http://www.mydomain.com/Themes/default/css/folder на сервере, но не знаю точно, какой код использовать для этого.

ТАКЖЕ, еще сложнее ... Доменное имя может меняться, поэтому я бы не стал использовать доменное имя в файле .htaccess, вместо этого, возможно, используйте .. или. чтобы перейти в каталог или другой метод захвата имени домена в файле .htaccess.

Ответы [ 2 ]

2 голосов
/ 27 августа 2011

Создайте файл .htaccess в /Themes/default/css/folder и поместите туда эти строки ( требуется mod_rewrite ):

Options +FollowSymLinks -MultiViews
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ http://%{HTTP_HOST}/ [R=301,L]

Он перенаправит (301 постоянное перенаправление) все запросы в папку на домашнюю страницу. Если файл запрошен, он это разрешит.

Если вы хотите, чтобы он работал для папок и файлов, удалите строку RewriteCond - он перенаправит ВСЕ запросы (даже для несуществующих URL-адресов) на домашнюю страницу.

Если вы увидите «500 Internal Server Error» после создания такого файла, , то это конфигурация вашего сервера : mod_rewrite может быть не включен или его директивы (RewriteRule, RewriteCond, RewriteEngine) запрещено размещать в .htaccess. В любом случае - проверьте журнал ошибок Apache для точного сообщения об ошибке (это даст вам точную причину).

0 голосов
/ 27 августа 2011
...