從子資料夾託管主網域

從子資料夾託管主網域

我在使子目錄充當我的主網域的 public_html 時遇到問題,並獲得也適用於該網域子目錄的解決方案。

我的託管允許我託管多個站點,這些站點都運作良好。我在我的目錄下建立了一個子資料夾〜/ public_html /名為的目錄/域名/,我在其中為每個單獨的網站創建一個資料夾。例如

  • 公共_html
      • 網站一
      • 網站二
      • 網站三

這使我的網站保持美觀和整潔。唯一的問題是讓我的「主域」適應這個系統。看來我的主網域以某種方式與我的帳戶(或 Apache 或其他東西)相關聯,所以我無法更改該網域的「文檔根」。我可以定義我在 cPanel 中新增的任何其他網域(「附加網域」)的文檔根,沒有問題。但主域不同。

我被告知要編輯 .htaccess 文件,將主域重定向到子目錄。這似乎效果很好,我的網站在其主頁/索引頁面上運作良好。

我遇到的問題是,如果我嘗試導航瀏覽器以說出我的主網站的圖像資料夾(僅作為範例),如下所示:

www.yourmaindomain.com/images/

然後它似乎忽略了重定向並在 url 中顯示整個伺服器目錄,如下所示:

www.yourmaindomain.com/domains/yourmaindomain/images/

它實際上仍然顯示正確的“/圖像索引”頁面,並顯示我所有圖像的清單。

這是我正在使用的 .htaccess 檔案的範例:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteCond %{REQUEST_URI} !^/domains/yourmaindomain/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /domains/yourmaindomain/$1

RewriteCond %{HTTP_HOST} ^(www.)?yourmaindomain.com$
RewriteRule ^(/)?$ domains/yourmaindomain/index.html [L]

這個 htaccess 檔案看起來正確嗎?我只需要讓我的主域表現得像一個插件域,並且它的子目錄遵守重定向規則。

答案1

我會打電話給流氓DirectorySlash

  1. 只發生在目錄中嗎?
  2. 它是否僅在沒有尾部斜線時發生(即/images轉到/domain/yourdomain/images/,但/images/沒問題)?

在這種情況下,有 3 個選擇:

  1. 確保所有連結都有尾部斜線 ( /)
  2. 設定DirectorySlash off(會讓你進入雙頁/目錄,從 SEO 的角度來看這不是一個好的)。
  3. RewriteRule嘗試在最後一個之前添加 a index.html:(臨時想到的,不知道它是否會起作用)

    RewriteCond %{REQUEST_FILENAME} -d  
    RewriteCond %{REQUEST_FILENAME} !/$  
    RewriteRule ^(.*) $1/  
    

答案2

你的問題之一是你的正規表示式:你是不是逃離你的點。這意味著它將被視為“任何字元”而不僅僅是一個點。代替

^(www.)?domain.tld$

你需要有

^(www\.)?domain\.tld$

相關內容