php — .htaccess перенаправляет из корня сайта в общую папку, скрывая «общедоступный» в URL-адресе?
спросил
Изменено 2 года, 5 месяцев назад
Просмотрено 79 тысяч раз
Ниже приведена структура каталогов моего сайта:
htdocs/ Мой проект/ общественный/ index.php css/ картинка/ js/ источник/ config.php шаблоны/ библиотека/
Мне не нужен прямой доступ пользователей к каким-либо файлам внутри каталога src
. src
содержит мои сценарии шаблонов и внутренней логики.
Я хочу настроить свой .htaccess
так, чтобы когда пользователь заходил на мой сайт (корневая папка My-Project
), он перенаправлялся на My-Project/public/index.
. Я хотел бы, чтобы URL-адрес просто выглядел как My-Project.com
на главной странице.
Любая помощь? Я не решаюсь изменить свой файл .htaccess, так как вижу много противоречивых советов здесь и в сети относительно наилучшего способа сделать это. 9((?!public/).*)$ public/$1 [L,NC]
5
Добавьте следующее в первую строку вашего .htaccess
DirectoryIndex public/index.php public/index.html
2
Я внес некоторые изменения в ответ @anubhava о работе на локальном хосте и с дружественными URL-адресами.
Структура каталогов:
- / (корневая папка локального хоста)
9(.*)$ index.php?$1 [L, QSA]
myapp/public/index.php
'; эхо $_SERVER['QUERY_STRING'];
Некоторые запросы:
http://localhost/myapp/
Привет
http://localhost/myapp/post/new
Привет
пост/новый
1
это работает для меня все время. Создайте .htaccess в своем корневом каталоге за пределами общей папки, затем добавьте эти 3 строки и решите проблему. 9(.*)$ общедоступных/$1 [л]
2
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Настройка перенаправления .
htaccessЧто такое перенаправление 301?
Перенаправление 301 перенаправляет трафик сайта из одного места в другое. Если example1.com имеет настройку перенаправления 301 для отправки людей на example2.net , все посетители, которые введут « example1.com » , вместо этого попадут на example2.net .
Для чего нужны перенаправления 301?
301 переадресация особенно полезна для таких вещей, как обслуживание сайта и перемещение трафика на новый сайт.
Использование перенаправления 301 для обслуживания сайта
Использование перенаправления 301 для обслуживания сайта позволяет перенаправлять трафик со всего сайта на страницу «К сожалению, наш сайт закрыт на техническое обслуживание». Перенаправления 301 позволяют перенаправить весь сайт, поэтому вам не придется беспокоиться о перенаправлении 301 для каждой веб-страницы, которой вы владеете. Вместо этого вы можете настроить одну простую команду, которая перенаправит трафик на страницу обслуживания, независимо от того, на какой странице он находится.
Страница обслуживания — это хорошая идея, потому что она облегчает посетителям понимание того, что происходит, и снижает путаницу и разочарование.
Использование перенаправления 301 при перемещении вашего сайта
301 перенаправление также оказывается полезным при перемещении вашего сайта на новый домен. Допустим, вы хотели изменить фирменный стиль своего сайта или домен, который вы всегда хотели, стал доступен, и вы хотите изменить свой домен на новый. В этом может помочь редирект 301.
Сообщать своим клиентам, что ваш сайт перемещается, это хорошо, пока ваши посетители не забудут и не посетят не тот сайт. Перенаправление 301 направит этих заблудших посетителей к новому, правильному месту назначения, даже если они забыли URL-адрес.
Если вы перемещаете страницы на новый сайт по одной, вы также можете создать переадресацию 301 для одной страницы. Редирект 301 будет перенаправлять посетителя только в том случае, если он попытается попасть на старую страницу. Остальная часть старого сайта будет доступна, за исключением страниц, перенаправляющих посетителей на новые страницы.
Как создать переадресацию 301?
Чтобы создать переадресацию 301, у вас должен быть доступ к файлу .htaccess.
Получив к нему доступ, все, что вам нужно сделать, это ввести несколько строк кода в файл .htaccess, чтобы создать перенаправление 301.
Однако нам следует кое-что узнать о файле .htaccess, прежде чем мы начнем с ним возиться.
Что такое .htaccess?
Файл .htaccess – это файл конфигурации, который включает и выключает функции сервера. Думайте об этом как о панели управления для вашего сервера. Добавляя код в .htaccess, вы можете «включить» некоторые функции вашего сервера, к которым у вас изначально не было доступа.
Перенаправление 301 — одна из таких функций. Он станет активным только в том случае, если вы добавите соответствующий код в файл .htaccess.
.htaccess Соглашения об именах
Убедитесь, что ваш файл называется . htaccess, иначе ваша переадресация 301 и все другие функции в .htaccess не будут работать. Точка перед .htaccess также обязательна. Удаление точки приведет к созданию бесполезного файла .htaccess. Имя файла .htaccess также должно быть строчным.
Исчезающий .htaccess
Точка в начале имени файла обозначает «скрытый» файл. Это означает, что когда вы сохраните и закроете файл, он станет невидимым. Имейте это в виду при работе локально или на сервере, на котором нет встроенного редактора .htaccess, такого как парные сети.
Почему они скрыты? Потому что некоторые файлы имеют слишком большую мощность или слишком запутаны для обычного пользователя. Вы не хотите, чтобы кто-то наткнулся на неправильный файл и случайно внес изменения, которые могут сломать всю систему.
Как найти невидимые файлы?
Так что же происходит, когда вам нужно получить доступ к этому файлу? Вы должны заставить его снять покров невидимости и смешаться со всеми остальными файлами. Вот как это сделать:
Поиск невидимых файлов в Windows:
В Windows 10 перейдите в поле поиска на панели задач и введите «папка». Затем из результатов поиска выберите Показать скрытые файлы и папки . В дополнительных настройках , нажмите Показать скрытые файлы, папки и диски , а затем нажмите OK .
Теперь вы можете видеть свои скрытые файлы. Если вы хотите скрыть их снова, просто повторите шаги и установите флажок Не показывать скрытые файлы, папки и диски .
Поиск невидимых файлов на Mac:
Чтобы найти невидимые файлы на Mac, необходимо сначала открыть Finder и перейти к разделу Устройства на левой боковой панели. Нажмите на имя вашего Mac, а затем нажмите Папка Macintosh HD . Оказавшись там, удерживайте Command-Shift-. (точка). Это сделает все ваши скрытые файлы видимыми. Чтобы они снова исчезли, просто удерживайте Command-Shift-. (точка).
Как отформатировать редирект 301 в .htaccess
Поздравляем! Теперь вы готовы добавить редирект 301.
Итак, откройте файл .htaccess. Если у вас его нет, создайте его. Обратите внимание, что у этого файла нет расширения. Это просто .htaccess.
Чтобы перенаправить страницу:
Замените old-file.html именем файла страницы, которую вы хотите перенаправить.
Следуйте имени старой страницы с полным URL-адресом страницы, на которую вы хотите перенаправить.
Другими словами, это перенаправление 301 приведет к тому, что весь трафик на old-file.html будет направлен на http://www.domain.com/new-file.html.
Если вы хотите перенаправить несколько страниц, вы можете поместить несколько таких перенаправлений в свой файл .htaccess. Просто убедитесь, что у каждого есть своя линия.
Чтобы перенаправить весь домен:
Замените http://www.new-domain. com/ доменом, на который вы хотите перенаправить свой сайт. Поскольку в нем не упоминается перенаправленный сайт, вы должны проявить особую осторожность, чтобы убедиться, что это попадет в .htaccess вашего сайта. Если он окажется в другом месте, он не будет работать или перенаправит не на тот сайт.
Сохраните изменения, как только закончите добавлять 301 переадресацию в файл .htaccess.
Получение вашего .htaccess на вашем сервере
Если у вас есть услуга хостинга, такая как парные сети, все, что вам нужно сделать, это сохранить файл .htaccess, и все готово.
Если у вас нет возможности редактировать .htaccess на вашем сервере, вам придется вместо этого загрузить его. Для этого вы можете использовать FTP/SFTP или scp.
Важно учитывать безопасность при загрузке и выгрузке вещей с вашего сервера. Мы рекомендуем вам использовать SFTP, который более безопасен, чем FTP. SFTP значительно усложняет захват вашей информации людьми, пока она передается с вашего компьютера на ваш сервер.