我有一个发布到网络上的反应应用程序。我有建议的解决方案,通过反应将所有页面重定向到index.html,这似乎可以正常工作。我还需要将所有内容重定向到https://www。事情开始分崩离析。我可以找到像以下文章的点点滴滴: react-router redirect to index.html AND remove www from url in .htaccess
这些提供了有用的信息,但我仍然处在一个我在某些情况下获得重定向循环的位置。我希望有更优秀的重写技能的人可以指出我的错误。我不知道它是否重要,但我使用的是“react-dom”:“^ 16.3.2”,“react-router-dom”:“^ 4.2.2”,“webpack”:“^ 4.8.1 “
这就是我的想法:
Options -MultiViews
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ https://www\.%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^. index.html [QSA,L]
答案 0 :(得分:0)
一些可能改善事物的细微差别:
Options -MultiViews
RewriteEngine On
RewriteCond %{HTTPS} =off
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+) [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=302,L,NE]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www\.%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.html [END]
第一个更改阻止了双重重定向,模式更简单,最后重写终止。如果有效,请将302
更改为301
s。