簡體   English   中英

使用子域重寫url返回“無法訪問此站點”

[英]url rewrite using subdomain returns “This site can’t be reached”

我必須在這里遺漏一些非常明顯的東西。 我正在嘗試將轉到諸如product1.mywebsite.com之類的子域的用戶轉到www.mywebsite.com/products/?p=product1,其中“ product1”是我要傳遞給頁面的變量。

我已經閱讀了該網站上的各種帖子,以及其他一些文章,展示了它多么簡單,但它根本行不通!!! 我在Plesk中使用‪CentOS6.10,如果有幫助

這是我最近的嘗試:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^mywebsite\.com [NC]
RewriteRule ^(.*)$ https://www.mywebsite.com/pruducts/?p=$1 [L,R=301]

就像我讀過的所有帖子一樣,但我缺少一些東西。 .htaccess文件位於網站的根文件夾中。 我什至嘗試將其放在其上方的文件夾中,但仍然沒有任何樂趣。

就像該網站正在尋找子域而不是查找子域(因為它不存在)時,它應該只取子域中使用的單詞(在本例中為product1)並將其用作mywebsite.com/上的變量產品/頁。

我需要在Plesk中打開一些東西嗎?

您的條件明確指出,僅當主機名在“ mywebsite.com”之前沒有內容時,才應應用以下規則...

方法的第二個問題是,您不能像顯然嘗試的那樣在重寫規則中訪問主機名本身。


而是嘗試這樣的事情:

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.mywebsite\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(\w+)\.mywebsite\.com$ [NC]
RewriteRule ^ https://www.mywebsite.com/pruducts/?p=%1 [R=301]

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

暫無
暫無

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

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