我正在托管一个Symfony项目,我想将一个唯一的URL重定向到另一个URL。但是我收到一个ERR_TOO_MANY_REDIRECTS错误。
我不明白我的代码如何进行重定向循环。
这是我的.htaccess文件,我为Symfony设置了默认值,然后在 RewriteEngine On 之后添加了它:
RewriteCond %{HTTP_HOST} ^example.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteRule ^(.*)$ https://www.example.com/admin [L,R=301,NC]
以及完整的.htaccess:
DirectoryIndex index.php
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^sci-hl.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.sci-hl.com [NC]
RewriteRule ^(.*)$ https://www.sci-hl.com/admin [L,R=301,NC]
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^ %{ENV:BASE}/index.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 307 ^/$ /index.php/
</IfModule>
</IfModule>
我只是想在转到时重定向用户 [http://example.com,https://example.com,http://www.example.com,https://www.example.com]到 https://www.example.com/admin
答案 0 :(得分:0)
您需要排除将网站网址重定向到的目标路径:
RewriteCond %{HTTP_HOST} ^example.com [NC,OR]
RewriteCond %{HTTP_HOST} ^www.example.com [NC]
RewriteCond %{REQUEST_URI} !/admin
RewriteRule ^(.*)$ https://www.example.com/admin [L,R=301,NC]
否则,您的/admin
URL也将重定向到/admin
,从而导致无限循环。