问题描述
我有一个网站,当我输入https://i.stack.imgur.com/7SGbK.png时,我看到很多重定向提示的错误,但是如果我只使用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