2016-01-15 24 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

相關問題