.htaccess 将旧的.html页面重定向到新的没有html扩展名的页面?

ipakzgxi  于 2023-04-21  发布在  其他
关注(0)|答案(3)|浏览(120)

我刚刚改变了我的wordpress网站的永久链接。
我以前的链接是这样的,

http://www.sitename.com/category/postname.html

现在新的链接是

http://www.sitename.com/category/postname/

我得到404错误在旧的链接,我怎么能重定向所有的.html网页到新的非.html网页与.htaccess?

oug3syen

oug3syen1#

在你的文档根目录下的htaccess文件中,在你的wordpress规则之前添加以下内容:

RedirectMatch 301  ^/([^/]+)/([^/.]+)\.html$ /$1/$2/
RedirectMatch 301  ^/([^/]+)/([^/]+)/([^/.]+)\.html$ /$1/$2/$3/

如果你需要通过主机限制它,你可以使用mod_rewrite:

RewriteCond %{HTTP_HOST} sitename.com [NC]
RewriteRule ^([^/]+)/([^/.]+)\.html$ /$1/$2/ [R=301,L]

RewriteCond %{HTTP_HOST} sitename.com [NC]
RewriteRule ^([^/]+)/([^/]+)/([^/.]+)\.html$ /$1/$2/$3/ [R=301,L]
3phpmpom

3phpmpom2#

在htaccess文件中,只需输入:

Redirect 301  /postname.html  http://www.sitename.com/category/postname/
zbq4xfa0

zbq4xfa03#

Jon Lin的公认答案(上面)给我带来了一些问题。这是我的结果,它工作得很好,而且更紧凑。
它适用于两种情况,路径中有目录和没有目录。

在线客服:

RedirectMatch 301  ^/(.*)\.html$ /$1

或者,如果您需要受主机限制:

RewriteCond %{HTTP_HOST} myDomain.com [NC]
RewriteRule ^(.*)\.html$ /$1 [R=301,L]

示例:

相关问题