2014-03-04 51 views
0

我正在建立一個簡單的網站,只有一個主頁和一個聯繫頁面,並想知道我是否可以使用.htaccess重寫不同公司的網址。.htaccess url改寫爲白色標籤網站

因此,舉例來說,如果我去website.com/companyname-contact/它會在瀏覽器地址欄中顯示該網址,但實際加載通用contact.php頁面,然後我就可以使用PHP在正確的聯繫方式拉爲那個特定的公司名稱。

這需要適用於不同的公司名稱(例如website.com/anothercompany-contact/),但僅適用於一系列已批准的公司名稱。

我意識到這可能是不可能的,但我認爲我會問,因爲我今天早上花了大約4個小時Google沒有真正的進展。

謝謝

回答

2

除非你想手動列出.htaccess文件經批准的公司名稱(這看起來UGLY)我建議這樣的:

RewriteEngine On 


    RewriteRule (.*)-contact$ /contact.php?company_name=$1 [L,QSA,NC] 

,然後在contact.php

  • determin e如果有效的公司名稱 - 檢查數據庫或您正在使用的任何方法。 (確保逃離輸入)
  • 如果無效,你有兩個選擇:
    • 再導向到默認的404頁
    • 問題的智能警告頁面(即包括備用拼寫是建議該數據庫)並設置一個404頭。 (更好IMO
    • 如果在數據庫中類似的公司名稱有可能在頁面
+0

我的HTTP響應不同意的頂部用一記重定向到,其實。無論何時使用服務器端邏輯來處理服務器響應,最好強制使用HTTP標準,因爲:a)有助於防止站點的內部邏輯如何工作,b)響應代碼實際上是有意義的(作爲標準) ,以及c)它使殭屍爬行和潛在的API更加一致並且可以隨時發佈。試想一下,如果有人在其外部博客上與公司掛鉤,但拼寫錯誤的名稱。如果搜索引擎遇到404並解僱而不是索引警告頁面會更好。也許404會進入一個自定義頁面。 – Anthony

+0

@Anthony通過警告我的意思是一個警告頁面,對具體情況做出具體評論(比如類似拼寫的匹配或自動重定向到類似拼寫的建議),但帶有404狀態碼*而不是通用整個站點404頁面 –

+1

啊,所以定製404。我個人不提供建議,只是爲了安全,但這不是一個交易斷路器。只是想說出好的HTTP響應。很多人認爲404總是應該避免,這是錯誤的。或認爲他們應該使用404時,他們的意思是403或410,等等。我是一個小茶壺也不常使用。 – Anthony

0

是的,你可以。您需要啓用重寫引擎,然後才能使用正則表達式來完成您正在嘗試執行的操作。

這是您的htaccess可能喜歡什麼一個例子:

RewriteEngine On 
RewriteRule ^contact/([A-Za-z0-9-]+)/?$ contact.php?company=$1 [NC,L]