gpt4 book ai didi

apache - mod_rewrite : how to redirect everything except 2 files to "/"?

转载 作者:行者123 更新时间:2023-12-02 08:22:39 27 4
gpt4 key购买 nike

我的 mod_rewrite 配置有点问题。

我想将所有内容重定向到根目录 ( http://www.mydomain.com/ ),除了两个文件。

所以我尝试了这个:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !^/
RewriteCond %{REQUEST_FILENAME} !/file1.html
RewriteCond %{REQUEST_FILENAME} !/file2.html
RewriteRule ^(.*)$ http://www.mydomain.com/ [L,R=301]

不幸的是,这不会重定向任何内容。

如果我遗漏了第一行 RewriteCond 行,则会收到重定向错误。

我哪里出错了?

最佳答案

首先,您可能需要使用 REQUEST_URI 而不是 REQUEST_FILENAME。在虚拟主机场景中它们可能是相同的,但通常情况下并非如此。您可能想要重写 URI,而不是本地路径。

其次,你的规则;

RewriteCond %{REQUEST_FILENAME} !^/

...排除以 / 开头的所有请求,即所有 URI,以免被重写。您想要做的可能是;

RewriteCond %{REQUEST_URI} !^/$

被忽略文件的规则可能应该在末尾有一个额外的 $ 作为“结尾为”匹配而不是“包含”匹配。

剩下类似的东西;

RewriteEngine on
RewriteCond %{REQUEST_URI} !^/$
RewriteCond %{REQUEST_URI} !/file1.html$
RewriteCond %{REQUEST_URI} !/file2.html$
RewriteRule ^(.*)$ http://www.mydomain.com/ [L,R=301]

关于apache - mod_rewrite : how to redirect everything except 2 files to "/"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17066830/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com