如何配置重写规则,以便即使在 URL 中使用了别名,请求也将路由到服务器名称
How to Configure rewrite rule , so that the request will route to server name even if alias name is used in URL
我们有一个包含以下内容的虚拟主机文件,
NameVirtualHost *:8888
<VirtualHost *:8888>
ServerName example.domain.com
ServerAlias example
DocumentRoot /opt/weblogic/product/virtualhosts/example.domain.com/htdocs
ErrorLog /opt/weblogic/product/virtualhosts/example.domain.com/logs/error_log
RewriteEngine On
#RewriteRule ^/?$ %{REQUEST_URI}/StartPage [R,L]
RewriteOptions Inherit
DirectoryIndex index.html startpage.jsp
<Directory />
Require all granted
</Directory>
</VirtualHost>
我们可以使用服务器名称和别名访问应用程序。
- http://example.domain.com which expands to http://example.domain.com/StartPage/startpage.jsp
- http://示例扩展为 http:///example/StartPage/startpage.jsp
现在,要求是在我们使用服务器别名时将 url 重定向到服务器名称,如下所示
http://扩展为 http://example.domain.com/StartPage/startpage.jsp
的示例
谁能帮我修改 vhost 文件来完成这项工作。
这可能就是您要找的:
RewriteCond %{HTTP_HOST} ^example$
RewriteRule ^ https://example.domain.com%{REQUEST_URI} [R=301,QSA,END]
规则必须紧跟在有条件的行之后。并且重定向应该在其他重定向之前完成。
最好从 302 重定向开始,只有在您确定一切正常时才将其更改为 301。
如果您不想保留所请求的路径 URL,而是始终重定向到固定路径前缀,那么应该没问题:
RewriteCond %{HTTP_HOST} ^example$
RewriteRule ^ https://example.domain.com/StartPage [R=301,QSA,END]
我们有一个包含以下内容的虚拟主机文件,
NameVirtualHost *:8888
<VirtualHost *:8888>
ServerName example.domain.com
ServerAlias example
DocumentRoot /opt/weblogic/product/virtualhosts/example.domain.com/htdocs
ErrorLog /opt/weblogic/product/virtualhosts/example.domain.com/logs/error_log
RewriteEngine On
#RewriteRule ^/?$ %{REQUEST_URI}/StartPage [R,L]
RewriteOptions Inherit
DirectoryIndex index.html startpage.jsp
<Directory />
Require all granted
</Directory>
</VirtualHost>
我们可以使用服务器名称和别名访问应用程序。
- http://example.domain.com which expands to http://example.domain.com/StartPage/startpage.jsp
- http://示例扩展为 http:///example/StartPage/startpage.jsp
现在,要求是在我们使用服务器别名时将 url 重定向到服务器名称,如下所示
http://扩展为 http://example.domain.com/StartPage/startpage.jsp
的示例谁能帮我修改 vhost 文件来完成这项工作。
这可能就是您要找的:
RewriteCond %{HTTP_HOST} ^example$
RewriteRule ^ https://example.domain.com%{REQUEST_URI} [R=301,QSA,END]
规则必须紧跟在有条件的行之后。并且重定向应该在其他重定向之前完成。
最好从 302 重定向开始,只有在您确定一切正常时才将其更改为 301。
如果您不想保留所请求的路径 URL,而是始终重定向到固定路径前缀,那么应该没问题:
RewriteCond %{HTTP_HOST} ^example$
RewriteRule ^ https://example.domain.com/StartPage [R=301,QSA,END]