我有以下 .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的多种变体,但我无法实现这四个规则。
提前致谢!
最终解决方案是:
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”没有正确获取基本主机。