Назад | Перейти на главную страницу

Перенаправление каталогов на сервере Apache

Я загрузил простой шаблон PHP-блога под названием sphpblog и поместил его на свой сервер. Доступ к блогу осуществляется через classlibrary.org. Этот домен перенаправляет в папку / other / william / classlibrary на сервере. Я могу посетить домашнюю страницу блога, и она отображается нормально. Однако, когда я пытаюсь щелкнуть ссылки, они переходят на classlibrary.org/other/william/classlibrary/linkname.extension, что приводит к ошибке 404. Я проверил настройки блога, и нет возможности направить его прямо в корневой каталог веб-сайта. Итак, я хотел бы, чтобы какая-либо ссылка на classlibrary.org/other/william/classlibrary/filename.extension перенаправляла на classlibrary.extension.

Вместо того, чтобы создавать отдельные html-файлы для каждого файла на сервере, что потребует времени, могу ли я как-то сделать это через файл .htaccess? На моем сервере работает PHP версии 5.2, и полный путь classlibrary.org перенаправляется на / home / content / r / t / e / rteder10 / other / william / classlibrary. У меня нет доступа ни к панели управления администратора, ни к самому серверу. Это хостинг Godaddy Linux. Любая помощь будет оценена.

Предполагая, что сервер настроен так, чтобы разрешать переопределения, вы можете использовать mod_rewrite для создания всех видов сопоставлений. Боюсь, что специфика вашей ситуации несколько запутана. Мне непонятно, где вы храните эти списки и есть ли какое-то последовательное правило их построения. Если есть система, вы можете использовать mod_rewrite следующим образом:

RewriteEngine on
RewriteRule ^/other/william/classlibrary/([a-z]*).ext  /other/william/classlibrary/$1library.ext

Однако это работает, только если имя ссылки каким-то образом совпадает с именем класса. Вы можете узнать больше о mod_rewrite на http://httpd.apache.org/docs/current/mod/mod_rewrite.html

Если связь слишком сложна или произвольна, чтобы можно было использовать регулярное выражение и обратную ссылку, вы можете использовать карту перезаписи, которая позволит вам создать таблицу произвольных перезаписей. http://httpd.apache.org/docs/2.3/rewrite/rewritemap.html

Если все это кажется слишком сложным и у вас не так много перенаправлений, вы можете просто использовать более простую команду перенаправления, чтобы выполнять их одно за другим в файле .htaccess:

Redirect  /other/william/classlibrary/filename.extension http://classlibrary.org/other/william/classlibrary/classlibrary.extension

Вы также можете создать простой обработчик ошибок 404, который будет анализировать URL-адрес запроса и, если URL-адрес вам нужен, создавать копию страницы с нужным именем. Таким образом, сайт будет автоматически обновляться при первом запросе, и тогда перенаправление не потребуется, так как новый (с правильным именем) файл будет на месте.

В сценарии обработчика ошибок 404 при создании нового файла вы затем ответите (пользователю) http-код 200 и содержимое страницы, поэтому даже при первом посещении посетители не увидят ошибки.