首页 > 解决方案 > 重定向到许多重定向失败 - URL 中的 WWW

问题描述

我有一个网站,当我输入www.mywebsite.co.uk时,我收到一个错误,显示许多重定向,但如果我只使用 mywebsite.co.uk,它的路由很好。

下面是我的 .htaccess 和我使用 Yii2 Advanced App

任何人都可以提供任何帮助吗?

RewriteEngine on

# hide files and folders
RedirectMatch 404 /_protected
RedirectMatch 404 /\.git
RedirectMatch 404 /composer\.
RedirectMatch 404 /.bowerrc

# If a directory or a file exists, use the request directly

RewriteBase /

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,NE,R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d


# Otherwise forward the request to index.php
RewriteRule . index.php

<IfModule mod_deflate.c>
  # Compress HTML, CSS, JavaScript, Text, XML and fonts
  AddOutputFilterByType DEFLATE application/javascript
  AddOutputFilterByType DEFLATE application/rss+xml
  AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
  AddOutputFilterByType DEFLATE application/x-font
  AddOutputFilterByType DEFLATE application/x-font-opentype
  AddOutputFilterByType DEFLATE application/x-font-otf
  AddOutputFilterByType DEFLATE application/x-font-truetype
  AddOutputFilterByType DEFLATE application/x-font-ttf
  AddOutputFilterByType DEFLATE application/x-javascript
  AddOutputFilterByType DEFLATE application/xhtml+xml
  AddOutputFilterByType DEFLATE application/xml
  AddOutputFilterByType DEFLATE font/opentype
  AddOutputFilterByType DEFLATE font/otf
  AddOutputFilterByType DEFLATE font/ttf
  AddOutputFilterByType DEFLATE image/svg+xml
  AddOutputFilterByType DEFLATE image/x-icon
  AddOutputFilterByType DEFLATE text/css
  AddOutputFilterByType DEFLATE text/html
  AddOutputFilterByType DEFLATE text/javascript
  AddOutputFilterByType DEFLATE text/plain
  AddOutputFilterByType DEFLATE text/xml

  # Remove browser bugs (only needed for really old browsers)
  BrowserMatch ^Mozilla/4 gzip-only-text/html
  BrowserMatch ^Mozilla/4\.0[678] no-gzip
  BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
  Header append Vary User-Agent
</IfModule>

标签: phpyii2yii2-advanced-app

解决方案


太多的请求总是意味着您正在通过 .htaccess 中的规则创建一个循环,因此页面会不断重新加载或无法加载,因此它会重新加载并最终超时。这就是我控制 URL 访问的方式;

 # Start rewrite rules
 RewriteEngine On
 RewriteBase /

 # HTTPS on & remove www prefix
 RewriteCond %{HTTPS} off [OR]
 RewriteCond %{HTTP_HOST} ^www\. [NC]
 RewriteRule ^ https://mywebsite.com%{REQUEST_URI} [L,NE,R=301]

 # Remove html extension
 RewriteCond %{SCRIPT_FILENAME}.html -f
 RewriteRule [^/]$ %{REQUEST_URI}.html [QSA,L]
 RewriteRule ^(.+)\.html$ /$1 [R=301,L]

 # Remove php extension
 RewriteCond %{SCRIPT_FILENAME}.php -f
 RewriteRule [^/]$ %{REQUEST_URI}.php [QSA,L]
 RewriteRule ^(.*)/$ $1 [R=301,L]

 # 301 redirect index to https
 Redirect 301 /index https://mywebsite.com

推荐阅读