亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

根據用戶名使用 htaccess 動態創建子域

根據用戶名使用 htaccess 動態創建子域

PHP
蝴蝶刀刀 2022-08-19 15:45:49
我有一個問題,我需要知道如何動態創建子域。http://example.com/user.php?id=ajithjojo我希望它像這樣工作 http://ajithjojo.example.com/這怎么可能。我檢查了所有StackOverflow討論,但我沒有得到我需要的正確答案
查看完整描述

2 回答

?
拉莫斯之舞

TA貢獻1820條經驗 獲得超10個贊

您要么需要實現一些邏輯來將虛擬主機添加到apache http服務器(復雜且可疑),要么使用默認主機(響應現有虛擬主機處理的所有傳入請求的主機)并在該主機中實現內部重寫規則。這允許您簡單地分發對此類“子域”(實際上是主機名)的引用。

這些重寫規則可能如下所示:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^([^.]+)\.example\.com$
RewriteRUle ^ %{REQUEST_URI}?user=%1 [END]

顯然,您需要根據實際設置進行調整,但它應該為您指明正確的方向。例如,您可以使用評估所請求主機的實現,而不是依賴于特定的 http get 參數,如上所示。但這些都是您必須自己決定的實現細節。

如果您使用上述規則收到內部服務器錯誤(http狀態500),那么您很可能操作的是一個非常舊版本的apache http服務器。在這種情況下,您將在 http 服務器錯誤日志文件中看到不受支持的標志的明確提示。您可以嘗試升級或使用較舊的標志,在這種情況下,它可能具有相同的工作方式,盡管這有點取決于您的設置。[END][L]

此實現同樣適用于 http 服務器主機配置或動態配置文件(“.htaccess”文件)中。顯然,重寫模塊需要加載到 http 服務器內部并在 http 主機中啟用。如果您使用動態配置文件,則需要注意在主機配置中完全啟用了它的解釋,并且它位于主機的文件夾中。DOCUMENT_ROOT

一般評論:您應該始終更喜歡將此類規則放在http服務器主機配置中,而不是使用動態配置文件(“.htaccess”)。這些動態配置文件增加了復雜性,通常是意外行為的原因,難以調試,并且它們確實會降低http服務器的速度。它們僅作為最后一個選項提供,用于您無法訪問真正的http服務器主機配置(閱讀:非常便宜的服務提供商)或堅持編寫自己的規則的應用程序(這是一個明顯的安全噩夢)。


查看完整回答
反對 回復 2022-08-19
?
縹緲止盈

TA貢獻2041條經驗 獲得超4個贊

這與htaccess無關。您可以設置 Web 服務器,以便 *.example.com 指向特定的公共根目錄。在該公共根中,駐留著一個php腳本,該腳本檢查數據庫以查看主機/用戶名是否應該存在。

因此,您的第一個 URL 會在數據庫中創建一條記錄,指出該記錄存在。然后,在訪問第二個 URL 時,腳本會看到域存在,然后執行動態操作。ajithjojo

如果它不存在,腳本將引發 404 標頭,或重定向到某個位置。


查看完整回答
反對 回復 2022-08-19
  • 2 回答
  • 0 關注
  • 111 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號