React重定向到index.html,www& HTTPS

时间:2018-05-15 15:02:18

标签: reactjs .htaccess mod-rewrite url-rewriting

我有一个发布到网络上的反应应用程序。我有建议的解决方案,通过反应将所有页面重定向到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]

1 个答案:

答案 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。