[英]Doing math on Apache RedirectMatch for WordPress
這類似於此,但我不使用Perl模塊。
我正在使用 WordPress 4.3,我需要向post_id
添加一個像1122000
這樣的1122000
以獲取永久鏈接結構。
這是我的默認 URL 結構:
mysite.com/?post_type=orders&p=139
這是所需的永久鏈接結構:
mysite.com/orders/1122139
請注意,我們不能將1122
連接到post_id
因為post_id
將來可能會超過999
。
在我的第一次嘗試中,我使用了add_rewrite_rule
函數:
function my_rewrite_basic() {
add_rewrite_rule( '^orders/1122([0-9]+)/?', 'index.php?post_type=orders&p=$matches[1]', 'top');
}
add_action('init', 'my_rewrite_basic');
僅當 id 低於1000
時才有效。
在我的第二次嘗試中,我直接使用了 Apache RedirectMatch,如下所示:
RedirectMatch 301 ^/orders/(\d+) /?post_type=orders&p=($1-1122000)
在.htaccess
文件中沒有成功。
有沒有另一種方法可以實現基於 post_id 的 7 位序列號?
正則表達式不允許你做數學。 RewriteRule
也不允許你做數學。
您應該考慮修改數據庫中的數據。 您可以將該數字添加到數據庫中的帖子 ID,同時注意不要破壞外鍵約束(這意味着,您可以使用on update cascade
選項配置顯式外鍵,或者手動更新包含對帖子 ID。
另一種選擇是為 wordpress 編寫一個路由插件,這將允許您強制執行您喜歡的任何重寫規則。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.