簡體   English   中英

重寫URL的Apache

[英]Rewriting URL's Apache

好的,這已經讓我發瘋了一段時間。 那里有很多有關如何使用.htaccess文件重寫URL的信息。 但是由於某些原因,經過數小時的嘗試,我仍然無法對自己的網址產生任何影響。 我試過將指令移動到apache2.conf,仍然沒有運氣。 我不太擅長服務器管理,但是我要到達那里。 我確實注意到,盡管那里有很多站點,這些站點可能是由網頁設計師等wordpress網站構建的,或者您擁有什么,即使它們具有干凈的URL。

所以我需要做的就是粘貼這些mod重寫規則之一,例如

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

到我的public_html目錄中名為.htaccess的文件。 由於某種原因,這對我不起作用。 我使用的是數字海洋,因此我錯過了設置LAMP服務器的關鍵步驟,因為我說我仍在與服務器管理員打交道。 任何幫助或建議,不勝感激!

對於大多數php框架(wordpress,laravel等),所有不是“真實”目錄或文件的url請求都被重定向到單個入口點。 例如。 index.php ,在其中處理請求並相應顯示頁面。

這是一個簡單的示例,其中所有不是實際目錄或文件的請求都將重定向到index.php並進行處理:

的.htaccess

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

的index.php

<?php

switch($_SERVER['REQUEST_URI']) {
    default:
        echo "404: Page cannot be found";
        break;
    case 'page1':
        echo "This is page 1";
        break;
    case 'page2':
        echo "This is page 2";
        break;  
    case 'page3':
        echo "This is page 3";
        break;      
}

因此,如果您訪問http://somedomain.com/page1 ,它將顯示“這是第1頁”。 如果您訪問http://somedomain.com/page4 ,它將顯示“ 404:找不到頁面”。

暫無
暫無

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

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