.htaccess - 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]
而且我还尝试将我的代码放在其余代码之下,但这会导致重定向循环。
解决方案
试试这样:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/(agb|impressum|datenschutzerklaerung|)$
RewriteRule .* https://www.mywebsite.com [R=301,L]
在隐身模式下尝试新的浏览器。
推荐阅读
- java - 扫描值的简化方法?
- ios - PHAssetResourceManager 的 requestData 返回多个对象
- benchmarkdotnet - Benchmarkdotnet 不尊重框架目标 net462
- java - FirebaseRecyclerAdapter 抛出一个空对象
- excel-formula - 有没有办法让 O 列从 F 列中提取值是 J 到 L 匹配 A 到 C
- r - 合并R中的互补列
- lua - 为什么这个 lua dijkstra 的算法在某些情况下不起作用?
- javascript - 背景“跳跃”显示侧边栏内容
- javascript - 在 JavaScript 中创建字符串长度函数
- node.js - 在本地运行并在 Heroku 上构建和部署但在我尝试打开它时显示应用程序错误的应用程序