php - 重定向到许多重定向失败 - 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>
解决方案
太多的请求总是意味着您正在通过 .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
推荐阅读
- android - Android Canvas:Path.quadTo() 算法
- wordpress - 如何修复操作超时 - 错误 28?
- python - 在 Windows 中自动化应用程序
- visual-studio-code - vscode - 无法激活“测试资源管理器 UI”扩展,因为它依赖于未加载的“测试适配器转换器”扩展
- javascript - 我有一个元素(在函数内部),我需要使用“document.getElementById”(位于外部)来获取它。我该怎么做呢?
- arduino - 使用 SerialTransfer 库通过 UART 接收从 nodemcu 发送到 Arduino UNO 的有效负载中的所有零
- mongodb - Mongodb查询以获取特定年份每个月的文档计数
- django - 在Django的模型类中按函数排序
- load-testing - Locust - 如何延迟 RPS 数据的收集,直到所有线程都启动
- c# - 为什么 C# Process.Start 在我的路径上找不到可执行文件?