簡體   English   中英

執行 mod_rewrite 后如何屏蔽 URL 的一部分

[英]how to mask part of URL after doing a mod_rewrite

我有幾個客戶端域我想指向我的 droplet(我在這里有一個 vue 應用程序)並根據被調用的域提供正確的路徑。

例如:domainA.com 應該 go 到 mysite.com/path-a

domainB.com 應該 go 到 mysite.com/path-b

我嘗試使用 .htaccess 重寫 URL

<IfModule mod_rewrite.c>
  RewriteEngine On
RewriteCond %{HTTP_HOST} =domainA
RewriteCond %{REQUEST_URI} =/
RewriteRule ^ %{HOST_NAME}/uri-a [R=301,L]

 # Handle subsequent routes
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
 RewriteRule . /index.html [L]

 </IfModule>

但是,我似乎無法刪除 URI 並僅顯示客戶端域名。

還想讓它動態化,這樣我就不必為每個客戶域編寫相同的規則

您能否嘗試以下操作,根據您顯示的示例,請在測試您的 URL 之前清除您的瀏覽器緩存。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^domainA\.com$ [NC]
RewriteRule ^/?$ http://%{HTTP_HOST}/path-a [R=301,L]

RewriteCond %{HTTP_HOST} ^domainB\.com$ [NC]
RewriteRule ^/?$ http://%{HTTP_HOST}/path-b [R=301,L]

# Handle subsequent routes
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>

您可以在您的根 .htaccess 中嘗試此代碼:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^(?:www\.)?domainA\.com$ [NC]
RewriteRule ^$ path-a [L]

RewriteCond %{HTTP_HOST} ^(?:www\.)?domainB\.com$ [NC]
RewriteRule ^$ path-b [L]

# Handle subsequent routes
RewriteRule ^index\.html$ - [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.html [L]

確保從新瀏覽器或清除瀏覽器緩存后進行測試。

暫無
暫無

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

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