htaccess 重定向除了一个文件

Posted

技术标签:

【中文标题】htaccess 重定向除了一个文件【英文标题】:htaccess redirect except one file 【发布时间】:2014-04-29 22:49:56 【问题描述】:

我正在使用 GEO_IP 进行重定向,一切正常,但是,我不想将所有内容重新路由到不同的域,而是重定向到同一域上的某个网页。那么问题是我需要过滤掉那个页面,否则它会循环。

所以.. 假设该文件名为“welcome.html”并且位于根文件夹中.. 我想将所有内容重新路由到welcome.html,除非它要去welcome.html。

这有意义吗?

所以而不是:

RewriteCond %ENV:GEOIP_CONTINENT_CODE ^EU$ [NC]
RewriteRule ^ http://www.otherrdomain.com%REQUEST_URI [L,R]

我想确保一个文件是豁免的,它应该转到那个文件.. 下面的工作吗?

RewriteCond %ENV:GEOIP_CONTINENT_CODE ^EU$ !^/welcome.html [NC]
RewriteRule ^(.*)$ /welcome.html [L,R]

我在另一篇文章中看到了最后一行,但它与我之前的完全不同(带有 .* 和所有)......只是想在这里运行它..

感谢您的任何意见!

【问题讨论】:

当你尝试时会发生什么? @Howlin 我收到 500 服务器错误。看起来 GeoIP 不喜欢这种说法…… 【参考方案1】:

改成:

RewriteCond %ENV:GEOIP_CONTINENT_CODE ^EU$ [NC]
RewriteCond %REQUEST_URI !^/welcome.html
RewriteRule ^(.*)$ /welcome.html [L,R]

因为我之前遇到过 500 服务器错误。这对欧盟以外的任何东西都没有问题。欧盟人现在有“页面未正确重定向”...

但是,我发现我收到“页面未正确重定向”,因为它仍在重定向。如果我只是简单地制作了一个静态页面“welcome.html”,那么它就像一个魅力。

【讨论】:

以上是关于htaccess 重定向除了一个文件的主要内容,如果未能解决你的问题,请参考以下文章

htaccess 重定向到 HTTPS,除了几个 url

.htaccess 重定向所有页面,除了少数页面重定向到特定页面

将大写 URL 重定向到小写,除了 *** - htaccess

htaccess 301重定向整个网站但有例外

htaccess - 将所有文件重写为 index.php,除了 sitemap.xml

没有文件时htaccess重定向