Apache 重定向子目录而不影响主目录

Apache 重定向子目录而不影响主目录,apache,.htaccess,url-redirection,mod-alias,Apache,.htaccess,Url Redirection,Mod Alias,在WordPress中更新内容时,我发现生成slug的插件不能使用另一个页面已经在使用的slug,所以我不得不将slug更改为稍微不同的东西。我现在需要确保任何尝试旧URL的人都能被重定向到新URL,而不会影响主页 因此,我有/members/和一个成员列表,您可以单击members转到/member/[name]我需要将/members/[name]重定向到/member/[name] ([name]可以是任何字符,因此必须是通配符。) 我已经使用了以下两种htaccess规则(不是同时使用)

在WordPress中更新内容时,我发现生成slug的插件不能使用另一个页面已经在使用的slug,所以我不得不将slug更改为稍微不同的东西。我现在需要确保任何尝试旧URL的人都能被重定向到新URL,而不会影响主页

因此,我有
/members/
和一个成员列表,您可以单击members转到
/member/[name]
我需要将
/members/[name]
重定向到
/member/[name]
([name]可以是任何字符,因此必须是通配符。)

我已经使用了以下两种htaccess规则(不是同时使用),但它们最终总是重定向/members/页面,这会破坏一切

RewriteRule ^members/(.*) http://domain.tld/member [R=301,L]

RedirectMatch 301 ^/members/.*$ http://domain.tld/member
如果
/

旁注:我试图找到答案,但我找到的所有结果都试图做完全相反的事情(只重定向与/members/完全匹配的内容),而我需要这样做,但却不起作用。

试试这个

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
Redirect 301 /oldDir/old.php http://yourDomain/newDir/new.php

您没有使用请求的捕获部分

尝试:


这看起来不像我想要完成的?这里到底发生了什么事?
^(.*)$http://%1/$1
?我不知道细节。我只知道它对我有用。哦,我想你误解了,我想重定向一个通配符的子目录,如/members/1/members/2等。。另外,我想我理解你的
http://%1/$1
它似乎在使用“www”的通配符,以防我认为它不在那里。本页解释了htaccess文件的正则表达式。您可以替换URL的一部分,检查此示例,其中“%F3”替换为“?”。尝试此操作以更改目录RewriteCond%{the_REQUEST}^GET\/oldDir/RewriteRule^services/(*)$/newDir/$1[L]哦,这不好,好吧,我已修复了,但是/members。。。无需更新即可修复它:)
RedirectMatch ^/members/(.+)$ /member/$1