.htaccess 301在htacess中重定向以获得全新网站

.htaccess 301在htacess中重定向以获得全新网站,.htaccess,redirect,.htaccess,Redirect,我有一个全新的网站,取代了旧网站(原来是一个旧的Joomla网站,新的是Wordpress)。网站没有相同的结构,所以我需要所有流量从旧网站重定向到新网站的主页 有人告诉我这是最简单的方法,我需要在.htacess文件中完成(主机是一台Appache机器,带有Cpanel-acess) 激活缓存后,旧网站有一些模式,如:www.website.com/index.php/en/folder_name/file.html 所以我想我需要把所有的/index.php/en/*转发到www.websi

我有一个全新的网站,取代了旧网站(原来是一个旧的Joomla网站,新的是Wordpress)。网站没有相同的结构,所以我需要所有流量从旧网站重定向到新网站的主页

有人告诉我这是最简单的方法,我需要在.htacess文件中完成(主机是一台Appache机器,带有Cpanel-acess)

激活缓存后,旧网站有一些模式,如:www.website.com/index.php/en/folder_name/file.html 所以我想我需要把所有的/index.php/en/*转发到www.website.com。。。但我在问题档案中没有找到类似的解决方案。 因为我不熟悉.htacess命令,所以有没有简单的命令?
谢谢。

您只需要一个
重写规则
(并打开
重写引擎

在这里,我正在编辑已经存在的WordPress
.htaccess
文件:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# The new rule, make it first, top priority
RewriteRule ^index\.php/en/ / [R=301,L]

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress
#开始WordPress
重新启动发动机
重写基/
#新规则,把它放在首位,放在首位
重写规则^index\.php/en/[R=301,L]
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
这应该将所有
index.php/en/
请求重定向到主站点。(现在在我自己的服务器上测试。)


请注意,Apache2需要启用
AllowOverride
mod_rewrite
,但由于您已经提到了其他重定向,您应该可以开始了。

在您的旧站点/htaccess中,添加此重定向

RedirectMatch 301 ^/index\.php/en/.*$ http://newsite.com/

这将把oldsite.com/index.php/en/的所有请求重定向到newsite.com

谢谢!不幸的是,它似乎并没有像预期的那样工作:如果我写www.website.com/index.php/en/contact.html,它会重定向到www.website.com/en/contact.html。我已经将它编辑为使用绝对URL,你可以尝试一下,希望它能有所帮助!再次感谢你,但不幸的是仍然没有工作。也许是Wordpress核心重定向的东西?(或者一些缓存?-但是我从core+cpanel缓存设置中停用了所有缓存)。或者可以是来自其他htacess规则的东西?WordPress确实会从内存中执行一些重定向,而且web浏览器会主动缓存301(特别是Firefox)。不幸的是,我现在无法更彻底地了解它,因为我在手机上,但我可以在以后回到电脑前再看一看。@ioanis我的正则表达式有点错误,我现在已经解释了WordPress,请查看更新的答案。感谢您的回复!对不起,我想我没有很好地解释我的问题:(我保留了域名,我只是用一个新的、现代的版本更改了网站,为了简单起见,我更改了CMS。但是域名是一样的。