动态301.htaccess重定向/重写

动态301.htaccess重定向/重写,.htaccess,mod-rewrite,redirect,.htaccess,Mod Rewrite,Redirect,我有一个带有论坛的网站,以下是我的htaccess文件中的当前重写规则: RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^.*/?forum/?(.*)$ /forum.php [L] 现在,正因为如此,我有了谷歌索引的URL,比如: www.domain.com/abc/forum/rest-of-url www.domain.com/defg/forum/rest-of-url www.domain.com/something-e

我有一个带有论坛的网站,以下是我的htaccess文件中的当前重写规则:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^.*/?forum/?(.*)$ /forum.php [L]
现在,正因为如此,我有了谷歌索引的URL,比如:

www.domain.com/abc/forum/rest-of-url  
www.domain.com/defg/forum/rest-of-url   
www.domain.com/something-else/forum/rest-of-url 
并且所有链接都显示相同的页面,只能通过以下方式访问:

www.domain.com/forum/rest-of-url 
域/和/论坛之间没有任何文字(abc、defg等)/

基本上与此链接类似:

www.domain.com/abc/forum/rest-of-url
应重定向到:

www.domain.com/forum/rest-of-url 
我尝试将重写规则更改为:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule /forum/?(.*)$ /forum.php [L]
但是后来我在谷歌站长工具中发现了很多404错误,这些错误都是以前索引过的URL,所以我认为301重定向可以解决,但我还没有找到避免陷入循环的方法


感谢您的帮助。谢谢

通过
httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放入
文档根目录下的
.htaccess

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

# redirect any /foo/forum/index to /forum/index
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^[^/]+/(forum/[^/]+/?)$ /$1 [L,R=301,NC]

确认其工作正常后,将
R=302
更换为
R=301
。测试mod_重写规则时,避免使用
R=301
(永久重定向)。

对不起,索引部分是dinamic:www.domain.com/something-else/forum/index可以是www.domain.com/forum/someting-else