【发布时间】:2011-03-25 17:58:04
【问题描述】:
我想 301 重定向整个网站,但排除 /root 目录中存在的名为 /uploads 的文件夹中的所有内容。
我在谷歌上搜索过,但没有找到任何结果,或者我认为我看到的内容不正确。
我们可以破解这个吗?
【问题讨论】:
我想 301 重定向整个网站,但排除 /root 目录中存在的名为 /uploads 的文件夹中的所有内容。
我在谷歌上搜索过,但没有找到任何结果,或者我认为我看到的内容不正确。
我们可以破解这个吗?
【问题讨论】:
试试这个mod_rewrite 规则:
RewriteEngine on
RewriteRule !^uploads($|/) http://example.com%{REQUEST_URI} [L,R=301]
此规则匹配任何不以/uploads 或/uploads/ 开头的URL 路径(由于在. htaccess 文件)并将请求重定向到 example.com 的相应路径。
【讨论】:
P 而不是R=301。
我自己偶然发现的简单答案。
在任何其他调用之前的顶部添加以下内容
RewriteRule ^(uploads) - [L]
【讨论】:
Redirect,这似乎不能一起工作。因此,请添加一些信息如何与将所有其他页面重定向到 另一个 域一起使用,因为许多其他人告诉我 mod_alias 不是进行域重定向的正确选择。
我想你想要这个:
RewriteEngine on
RewriteCond %{REQUEST_URI} !^/uploads/
RewriteRule (.*) http://www.newdomain.com/$1 [R=301,L]
如果您收到 500 Internal Error,请仔细检查第二行的 } 和 ! 之间是否有空格。
【讨论】:
基于模式别名的解决方案
重定向除特定文件夹之外的所有文件夹
将以下行添加到您的 root/.htaccess :
RedirectMatch 301 ^/((?!uploads).*)$ http://newdomain.com/$1
这会将所有页面(不包括 /uploads/*)从旧域重定向到新域。
【讨论】:
http 主机的解决方案,其唯一目的是包含certbot certonly --webroot 的.well-known 目录(让我们加密):RedirectMatch permanent ^/((?!\.well-known)(/.*)?)$ https://%{SERVER_NAME}/$1
RewriteCond 解决方案。