.htaccess网址将旧链接格式重定向到新

时间:2018-04-30 22:04:44

标签: regex wordpress apache .htaccess

最近我将链接格式更改为自我托管的wordpress博客上的文章,我希望旧书签能够无缝地重定向到新链接,以便读者不会找到页面

旧格式为:https://domain.tld/index.php/yyyy/mm/dd/title-of-post

新格式为:https://domain.tld/title-of-post/

我当然做了这个改变,因为它更好,而且时间对我的博客来说并不是一个真正的因素。我在RewriteRule文件中使用了Apache的.htaccess指令,但我无法使模式匹配。这是.htaccess文件的当前状态:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php/[0-9]+/[0-9]+/[0-9]/.*?$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

但之前我曾尝试过以下模式:

^index\.php/?([-a-zA-Z0-9_+]+)/?([-a-zA-Z0-9_+]+)/?([-a-zA-Z0-9_+]+)/.*?$

^index\.php/2018/03/30/.*?$

甚至

(index)(\\.)(php)(\\/)(\\d)(\\d)(\\d)(\\d)(\\/)(\\d)(\\d)(\\/)(\\d)(\\d)(\\/)((?:[a-z][a-z]+))

其中最后一次尝试使用txt2re

这些都没有让我在匹配我提供的网址时获得任何好运。我希望旧链接重定向到新的相应链接。

1 个答案:

答案 0 :(得分:1)

而不是修改你的.htaccess更好的想法,使用重定向插件,如下所示,

https://wordpress.org/plugins/redirection/

它会照顾你的所有重定向

这对我和其他许多人都有用。如果这对你有用,请告诉我。

修改

对于您的具体情况,以下规则将起作用

RedirectMatch 301 ^/index\.php/([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ http://yourdomain.com/$4

您可以在此处阅读有关此规则的更多信息,

https://perishablepress.com/redirect-wordpress-date-archives-htaccess/