簡體   English   中英

頁面重定向到 404

[英]page redirecting to 404

我有一個名為 example.com 的不同語言的網站

當我調用 example.com/en - 它打開 eng 版本

如果我寫 example.com/fr - 它會打開法語版本

它是一個一頁的項目。 所以所有內容都包含在 index.php 中。 我讀了 url,展開它,然后我得到了請求的語言。 在本地機器上一切正常

在我的服務器上,如果我調用 example.com/en - 它會嘗試打開一條不存在的路徑,然后出現 404 錯誤

我必須做什么才能讓我的代碼像在本地機器上一樣工作?

要開始調試您的問題,請使用您瀏覽器的開發人員菜單……讓您看到 .network 請求的菜單。”

有了它,您將很快能夠准確地看到從服務器請求的 URL 是什么,並且您將看到返回的404響應。

所以,您的第一個檢查是:*“好吧,是我期望被請求的 URL 嗎?”*

然后,如果是,請檢查服務器端代碼以確定它無法匹配 URL 的原因。

還請記住,當您的網絡瀏覽器客戶端請求諸如blahblah/fr之類的內容時,該/fr位將被(例如 Apache)視為不同的<Location> 仔細查看您選擇的 Web 服務器的配置文檔,以確保它知道如何處理它將看到的 URL。 (有幾種方法可以做到這一點,所以我真的不能更具體,因為你沒有給我們任何關於你的服務器端設置的線索......)

請在.htaccess 中添加以下內容:

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

注意:如果您的 web 主機不允許 FollowSymlinks 選項,請嘗試將其替換為 Options +SymLinksIfOwnerMatch。

這基本上是適用於 Laravel 框架的配置。 但是,它也應該適用於您,但您需要在第三個重寫規則中正確設置路徑。

錯誤 404 消息的典型觸發是當網站內容已被刪除或移動到另一個 URL 時。還有其他原因可能會出現錯誤消息。 這些包括:

  • URL 或其內容(如文件或圖像)被刪除或移動(沒有相應調整任何內部鏈接)

為了解決這些問題

  • 在根目錄中創建一個錯誤頁面(“404.html”或“404.php”)(如果還沒有)。
  • 打開根目錄中的 .htaccess 文件(或根據需要創建一個),在“ErrorDocument 404 /404.html”中輸入此文件並保存更改。 將使用此代碼生成錯誤頁面。
  • 要查看它是否有效,請嘗試訪問一個不可用的網頁,希望錯誤 404 消息應該出現在瀏覽器中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM