动态301.htaccess重定向/重写
我有一个带有论坛的网站,以下是我的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
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