最近我将链接格式更改为自我托管的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
这些都没有让我在匹配我提供的网址时获得任何好运。我希望旧链接重定向到新的相应链接。
答案 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/