2016-01-15 25 views
0

我对nginx很新。我以前使用过Apache,并且使用htaccess将根目录重定向到另一个文件夹。现在迁移到nginx。以下是我想要实现的四件事将根重定向到nginx服务器中的另一个文件夹

  1. 将http重定向到https http://www.example.com - >https://www.example.com
  2. 然后重定向根到另一个文件夹,但必须将URL改写为example.com不example.com/blog
  3. 在PHP中的所有文件应显示为HTML的网址,例如: example.com/contact.php - > example.com/contact.html
  4. example.com/page.php?content=file - > example.com/file 我发现此代码重定向但不知道在哪里插入此代码nginx.conf或任何其他文件?

    服务器{

    location =/{ 
        return 301 https://www.example.com/blog; 
    } 
    

    }

也请给我建议,如果这些变化在nginx.conf文件或/etc/nginx/sites-available/example.com文件进行。

+0

为什么要重定向到另一个文档根目录?为什么不把正确的一个放在首位?如果你显示完整的配置文件 - 或者至少你正在讨论的配置部分 –

+0

我们有一些SEO问题,那么你可能会得到更多的帮助,所以我们不能从根目录中删除当前文件。 –

+0

你是在谈论根URL还是文档根? –

回答

1

要将HTTP重定向到HTTPS通信,您可以创建另一个服务器块来匹配传入的HTTP和域,然后重写到HTTPS服务器块。
你把这个放在哪个文件中? /etc/nginx/nginx.conf/etc/nginx/sites-available/example.com都应该读取(除非您更改配置),所以它应该没关系,但我个人将这些配置放在/etc/nginx/sites-available/example.com中,因为我认为它是同一个域的一部分。

文件:/etc/nginx/sites-available/example.com

server { 
     listen   80; 
     server_name www.example.com; 
     return   301 https://$server_name$request_uri; 
} 

server { 
     listen   443 ssl; 
     server_name www.example.com; 

     ... 

     # your location blocks and redirects here 
} 
+0

非常感谢朋友。你能提供URL重写规则和重定向块吗?是否与我上面提到的一样 –

+0

'$ scheme://domain.com$request_uri;'(见[serverfault](http://serverfault.com/q/591518/385320)) – luckydonald

相关问题