单页应用程序的高温访问设置

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

我正在为新网站处理我的htaccess文件。我尝试搜索论坛,但没有人可以复制我的工作解决方案。这是我需要的设置的描述:

  • 总是“ www”:“ test.com”变成“ www.test.com”
  • 始终使用SSL:“ http://”变为“ https://”
  • 总是在斜杠后:“ test.com/products”变成“ test.com/products /”
  • 并且所有不存在的文件夹都指向index.php文件(这是一个单页应用程序结构)。

这是我当前的htaccess代码:

RewriteEngine On
AddDefaultCharset UTF-8

# Force trailing slash
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} /+[^\.]+$
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L]

# www and ssl
RewriteCond %{HTTP_HOST} (?!^www\.)^(.+)$ [OR]
RewriteCond %{HTTPS} off
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L]

# Send all traffic to index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !index
RewriteRule .* /index.php [L]

这在许多情况下都有效,但在某些情况下却不起作用:

我希望有人能在这里发现问题。谢谢:-)

regex apache .htaccess single-page-application
1个回答
0
投票

您已在每个规则组的最后一行后缀[R=301,L]

  • R=301表示如果满足条件,则使用301状态码。
  • [L表示如果满足条件,请在此处停止。

因此,您不仅有一个停止请求,而且在满足条件后有两个停止请求。

如果同时删除这两个脚本,则脚本RewriteEngine将继续。

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