首页 > 解决方案 > mod_rewrite htaccess 问题

问题描述

我有这个网站:neotel2000.com 以这种方式工作:

好的。

我需要这个:

我希望相对于法语版本 (/fr/) 的每个可能部分,它将重定向 (301) 到根域 (neotel2000.com)。例子:

neotel2000.com/fr/whatever/ -----> neotel2000.com

虽然,有一些例外(即有 7 个与 /fr/ 相关的 url,其中 301 重定向不适用)我将向您展示这些 url 例外之一:

https://www.neotel2000.com/fr/standard-virtuel/

到目前为止,我已经在这里和其他论坛搜索了几十个 psot,但都没有运气。

这是我的 .htaccess 文件:

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} !^GET\ ./https://www.neotel2000.com/fr/.*\ HTTP
RewriteCond %{THE_REQUEST} !^GET\ ./https://www.neotel2000.com/fr/standard-virtuel/.*\ HTTP
RewriteRule ^fr(.+)/ / [R=301,L]
</IfModule>

谢谢加载

标签: .htaccessredirectseourl-redirection

解决方案


您可以使用此规则

RewriteCond %{REQUEST_URI} !^/fr/(standard-virtuel|example2|example3)/ [NC]
RewriteRule ^fr(/.*)?$ / [R=301,L]

只需将example2, example3, ... 替换为您想要的,每一个都由|

或者,如果您更喜欢最长的版本(未压缩),其中每个条件都针对特定的 url

RewriteCond %{REQUEST_URI} !^/fr/standard-virtuel/ [NC]
RewriteCond %{REQUEST_URI} !^/fr/example2/ [NC]
RewriteCond %{REQUEST_URI} !^/fr/example3/ [NC]
RewriteRule ^fr(/.*)?$ / [R=301,L]

推荐阅读