繁体   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