.htacess 无法从特定 URL 中删除 www

问题描述 投票:0回答:1

我有以下 .htacess 文件:

RewriteEngine On

RewriteBase /

# Remove 'www' from the URL
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://%1/$1 [R=301,L]

# Redirect requests to index.html if the request is not for an existing file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.html [L]

我的目标是:

这是因为我有一个 Angular 应用程序,如果 URL 不指向现有文件或目录,它将处理这些场景。

我已经通过这个网站尝试了我的.htaccess的多种变体,但我无法实现这四个规则。

提前致谢!

apache .htaccess mod-rewrite url-rewriting
1个回答
0
投票

最终解决方案是:

RewriteEngine On
RewriteBase /

# Remove www and redirect to the non-www version
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ https://YourBaseHost/$1 [R=301,L]

# Ensure this block is processed only if not already redirected
RewriteCond %{REQUEST_URI} !^/index\.html$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.html [L]

成为您要重定向到的“YourBaseHost”基本主机。

这样就可以正常工作了。

我的问题是“%1”没有正确获取基本主机。

© www.soinside.com 2019 - 2024. All rights reserved.