我的htaccess重定向不工作,当我指定一个词来匹配的时候

问题描述 投票:0回答:1

我被锁定,因为小时的重写规则,我花了很多时间在stackoverflow和其他博客寻找旧的问题,但我仍然不明白......

我只是想重定向用户输入一个特定的URL包含字投资

所以我做了这个例子。

RewriteRule ^(.*)investment(.*)$ https://example.com/$1 [L,R=301]

然后什么都没有发生,但当我尝试这个。

RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]

重写规则工作... 但这不是我想要的^^

我原来的htaccess是:

# BEGIN WordPress
# Les directives (lignes) entre 'BEGIN WordPress' et 'END WordPress' sont
# généré dynamiquement, et ne doivent uniquement être modifiées via les filtres WordPress.
# Toute modification des directives entre ces marqueurs sera outrepassée.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

我真的不知道这个重写是如何工作的,如果有人知道为什么我的重定向不工作,这将是很酷的^^。

先谢谢大家!

.htaccess mod-rewrite url-rewriting
1个回答
1
投票

可能你有一些其他的规则(S)修改。REQUEST_URI. 你可以试试这个规则 THE_REQUEST 可变的

RewriteCond %{THE_REQUEST} \s/+(.*?)investment [NC]
RewriteRule ^ https://example.com/%1 [L,R=301]

THE_REQUEST 变量代表了Apache从浏览器接收到的原始请求,并且在执行其他重写指令后不会被覆盖。例如这个变量的值是 GET /index.php?id=123 HTTP/1.1


在最近一次编辑问题后。

你可以插入这条规则:

RewriteRule ^(.*)investment https://example.com/$1 [L,R=301,NC]

就在下面 RewriteBase 行,并重新测试。

© www.soinside.com 2019 - 2024. All rights reserved.