react-router重定向到index.html并从.htaccess中的url中删除www

时间:2016-09-08 16:55:32

标签: .htaccess mod-rewrite reactjs react-router no-www

我在ReactJS中构建一个小应用程序,因此所有页面都需要提供index.html,JS处理url。这很好用。但我也希望.htaccess从网址中删除www(如果存在)。我正在阅读mod_rewrite文档,但我无法弄清楚如何让它同时完成。

这是我在.htaccess中的代码,请指教!

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^(.*) /index.html [NC]
    RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L] 
</IfModule>

1 个答案:

答案 0 :(得分:2)

回答了我自己的问题

<IfModule mod_rewrite.c>
  RewriteEngine On

  # remove www
  RewriteCond %{HTTPS} off
  RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
  RewriteRule ^(.*)$ http://%1/$1 [R=301,L,NE] 

  # redirect all to index
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.html [L,NC]
</IfModule>