Nginx: Перезапись из базового домена в подкаталог

Nginx: Перезапись из базового домена в подкаталог

У меня есть блог, размещенный наhttp://site.com/blog.

Как мне указать nginx переписывать запросы с site.comна site.com/blog?

Это не должно быть постоянным.

решение1

location = / {
    rewrite ^ http://site.com/blog/ redirect;
}

Это просто сделает запросы специально для корня. Если вам нужно поймать все (перенаправить http://site.com/somearticle/something.htmlна http://site.com/blog/somearticle/something.html), то вам понадобится что-то более сложное:

location /blog/ {
    # Empty; this is just here to avoid redirecting for this location,
    # though you might already have some config in a block like this.
}
location / {
    rewrite ^/(.*)$ http://site.com/blog/$1 redirect;
}

решение2

попробуйте вместо этого это:

location = / {
      return 301 /blog/;
 }

Ключевым моментом здесь является"="символ.

решение3

Это не сработало для меня. Вот что сработало:

  1. Откройте файл конфигурации NGINX для вашего сайта. Внутри блока сервера добавьте путь к корневому каталогу и установите приоритетный порядок для файлов:

    root /mnt/www/www.domainname.com;
    index  index.php index.html index.htm;
    
  2. Создать пустой блок локациидовсе остальные ваши блоки местоположения:

    location /latest {
    # Nothing in here; this is to avoid redirecting for this location
    }
    
  3. Закомментируйте директиву корневого каталога в блоке location / {} и добавьте перенаправление, чтобы это выглядело следующим образом:

    location / {
    # root   /mnt/www/www.domainname.com;
    index  index.php index.html index.htm;
    rewrite ^/(.*)$ http://www.domainname.com/latest/$1 redirect;
    }
    
  4. Убедитесь, что ваш блок location ~ .php$ указывает на свой корень

    root /mnt/www/www.domainname.com;
    

Это помогло мне.

решение4

только для домашней страницы и ничего больше я бы использовал:

location / {           
    rewrite ^/$ /blog/ redirect;
}

все остальное, например /foo/, не будет перенаправлено на /blog/.

Связанный контент