漂亮的 URL 伺服器端配置?
我已將網站轉移到我們的新 VPS。它在舊伺服器上執行良好。我想我知道是什麼導致了問題,但不知道在哪裡解決它。
我已經閱讀了很多關於漂亮 URL 的文章,似乎其中大多數都在使用 mod_rewrite 解決方案。查看我的
.htaccess
文件,它不是那樣設置的。它甚至可能根本不是漂亮的 URL,而是完全稱為其他東西。我們的 VPS 正在執行 WHM/Cpanel
伺服器版本:
Apache / 2.4.25 (cPanel) OpenSSL / 1.0.1e-fips mod_bwlimited / 1.4
Apache 2.4、PHP 5.5、PHP 5.6 和 PHP 7.0
CENTOS 7.3 x86_64 virtuozzo – 伺服器 WHM 62.0 (build 16)
我遇到了 URL 和
.htaccess
.以下是目前
.htaccess
文件的內容:Options -All SymLinksIfOwnerMatch MultiViews #AllowOverride None Order allow,deny Allow from all DirectoryIndex index
當我訪問該網站時,我得到:
內部伺服器錯誤
伺服器遇到內部錯誤或配置錯誤,無法完成您的請求。請聯繫網站管理員的伺服器管理員,告知他們此錯誤發生的時間,以及您在此錯誤之前執行的操作。伺服器錯誤日誌中可能提供有關此錯誤的更多資訊。此外,在嘗試使用 ErrorDocument 處理請求時遇到 500 Internal Server Error 錯誤。*
當我刪除
.htaccess
文件中的所有內容時,網站就會出現,但是當我點擊一個連結時,它說它沒有找到。(在程式碼中它不使用.php
副檔名,所以它找不到頁面。)它在舊伺服器上的工作方式
.php
是不使用擴展。所以取而代之的http://www.example.com/make01.php
是http://www.example.com/make01
.因此,我認為我必須在配置中添加一些內容,以使其工作方式與舊 VPS 上的工作方式相同。我可以訪問兩個 VPS 並查看了
PHP.ini
文件,但不完全確定我在尋找什麼。如果你能指出我正確的方向,那就太棒了。
如果您需要更多資訊,請告訴我。這是我第一次發帖。順便說一句,很棒的社區!
Options -All SymLinksIfOwnerMatch MultiViews
刪除
-All
參數:Options SymLinksIfOwnerMatch MultiViews
將帶有 + 或 - 的選項與那些沒有的混合是無效的語法,並且將在伺服器啟動期間被帶有中止的語法檢查拒絕。
這似乎就是這裡發生的事情。該
-All
參數是不必要的,因為您明確設置了SymLinksIfOwnerMatch
和MultiViews
。在 Apache 2.2(我假設的舊伺服器)上,這只會導致“意外結果”並且沒有錯誤。因此,我認為我必須在配置中添加一些內容,以使其工作方式與舊 VPS 上的工作方式相同。
看起來你正在利用
MultiViews
,所以你應該很高興。啟用( mod_negotiationMultiViews
的一部分)後,請求http://www.example.com/make01
將導致伺服器搜尋與請求的**基本名稱和所需的 mime 類型匹配的適當文件,並將其提供給客戶端。例如。/make01
結果/make01.php
被送達。請注意,如果您後來決定使用 mod_rewrite 來執行此 URL 重寫,那麼您可能需要禁用它,
MultiViews
因為它可能會發生衝突(一個常見的錯誤原因)。它甚至可能根本不是漂亮的 URL,而是完全稱為其他東西。
不管它是如何實現的,它仍然是一種“漂亮的 URL”。它只是使 URL 對使用者更友好(或“漂亮”)。