У меня небольшие проблемы с поиском чего-то простого. Я хочу 301 перенаправить все в каталоге в один файл в новом месте.
В моем .htaccess
я уже пробовал следующие ...
Redirect 301 /myDir/ http://www.mydomain.com/myNewDir/index.html
и это ...
Redirect 301 /myDir/ http://www.mydomain.com/myNewDir/
и это ...
Redirect 301 /myDir http://www.mydomain.com/myNewDir
Проблема заключается в том, что каждый из них просто отображает каждый файл в пределах / myDir /
и добавляет его в конец целевого URL.
После поиска в Google я увидел кое-что, в котором говорилось, что нужно сделать это ...
Redirect 301 ^/myDir(.*) http://www.mydomain.com/myNewDir
Но это просто то же самое ... оно сопоставляет существующее местоположение файла с концом URL-адреса.
Было легко найти множество «. Htaccess redirect» руководств в Интернете, но они, кажется, показывают только очевидные примеры, такие как «однозначное сопоставление файлов» или «однозначное сопоставление каталогов». '. В этих руководствах также, кажется, игнорируется объяснение различных соответствующих файловых директив и того, как их правильно использовать.
Эта конкретная учетная запись хостинга - мусор, и на ней также установлены расширения FrontPage. Мод-перезапись не работает (ломает весь сайт), но строки Redirect 301
работают нормально. Так что, пока я не смогу переместить этот новый сайт (не FrontPage) в более надежную учетную запись хостинга, мне нужно будет придерживаться однострочника Redirect 301
.
Как я могу просто использовать Redirect 301
для перенаправления всего в / myDir /
в тот же единственный файл , расположенный по адресу /myNewDir/index.html
? (Я бы предпочел использовать только / myNewDir /
, если это возможно). Пожалуйста, подробно объясните файловые директивы, используемые в вашем решении.
ОБНОВЛЕНИЕ:
Ранее принятый ответ не работает.
Пример:
RedirectMatch 301 /myDir1/(.*) http://mydomain.org/newpath/myDir1/index.html
... выдает ошибку «Слишком много перенаправлений при попытке открытия» .
Это потому, что / myDir1 / (. *)
соответствует в любом месте в строке, поэтому, если целевой URL содержит / myDir1 /
где угодно, а не только корень, он будет перенаправлен в неприятный цикл.
Правильное решение см. В моем собственном опубликованном ответе.