首页 > 解决方案 > htaccess 重定向所有页面,除了一些不起作用

问题描述

我正在尝试将我网站上的所有页面重定向到主页,但少数除外。我在 stackoverflow 上找到了一些解决方案,但这些都不起作用,所以我认为可能与我自己没有编写的 htaccess 的其余部分存在冲突。

RewriteEngine on
# begin my code
RewriteCond %{REQUEST_URI} !^/agb$
RewriteCond %{REQUEST_URI} !^/impressum$
RewriteCond %{REQUEST_URI} !^/datenschutzerklaerung$
RewriteRule .* https://www.mywebsite.com [R=301,L]
# end my code
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
RewriteRule ^ https://www.%1%{REQUEST_URI} [NE,L,R]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

# browser requests PHP
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^\ ]+)\.php
RewriteRule ^/?(.*)\.php$ /$1 [L,R=301]

# check to see if the request is for a PHP file:
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^/?(.*)$ /$1.php [L]

我试图写 RewriteRule .* / [R=301,L]

而且我还尝试将我的代码放在其余代码之下,但这会导致重定向循环。

标签: .htaccess

解决方案


试试这样:

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/(agb|impressum|datenschutzerklaerung|)$
RewriteRule .* https://www.mywebsite.com [R=301,L]

在隐身模式下尝试新的浏览器。


推荐阅读