2013-01-07 34 views
1

好像別人對這個問題在過去都經歷過類似的問題像我,但沒有人提供了一個完整的答案。在WordPress數據庫動態設置固定鏈接結構產生404

我試圖運行PHP腳本來更新wp_options表中的永久鏈接結構的WordPress的博客擺。我想連接到每個數據庫並更新永久鏈接,而無需登錄每個博客並通過UI更新設置。

我已成功連接到數據庫並使用正確的代碼更新permalink_structure字段,但嘗試查看任何帖子時會導致404錯誤。

是WordPress的更新其他表/字段完全啓用永久?我很難找到完整的答案。

BTW:如果有到.htaccess正在進行時,這是通過WordPress的用戶界面進行編輯,我沒有看到它。當我通過UI執行此操作時,htaccess看起來沒有變化。

謝謝!

+0

爲什麼這個否決?我對此進行了研究(包括很多關於stackoverflow的問題),並且很難找到任何有此確切問題並解決問題的人。 – gtr1971

+0

發佈您的.htaccess的內容。如果您通過用戶界面更改它,這是否工作? –

+0

是的,它的工作原理與通過Wordpress用戶界面改變它一樣。我所做的不同之處在於連接到博客的數據庫,並使用適當的永久鏈接代碼更新'wp_options'表中的'permalink_structure'字段,並直接從Wordpress示例中複製。當我這樣做時,會在帖子上產生404。顯然,在通過UI更改永久鏈接時,必須有另一個設置被Wordpress更改,這是我很難找出的。我已經查看了他們的代碼。 – gtr1971

回答

0

WordPress的永久鏈接rewrite_rules還挺麻煩的。如果你想要做一些基本的事情,它們是非常棒的,但它很難做出一些複雜的規則。

你想什麼確切結構使用?

請記住,由Wordpress創建的htaccess只是將所有內容重定向到加載Wordpress系統(wp_load())的index.php,並且其中一個組件解析了REQUEST_URI。

首先它試圖將REQUEST_URI綁定到它的一個正則表達式中,這使得它能夠理解正在請求什麼類型的資源(類別,標籤,頁面,帖子等),然後嘗試找到它是哪個資源如果它是一個帖子,通過它的slu find找到哪個帖子)。

+0

比方說,我有一個使用默認鏈接結構的原始博客,比如'http://www.domain.com/?p = 123'。如果我在用戶界面中更改此名稱以使用「帖子名稱」鏈接結構,則「wp_options」表中的「permalink_structure」字段將更改爲「/%postname%/'。但是,如果我繞過UI並通過使用'/%postname%/'的外部數據庫連接手動更新此字段,則會爲該帖子獲取404。我只是試圖弄清楚在使用UI時其他設置是否發生了變化,因爲根本不清楚'.htaccess'是否會發生變化。 – gtr1971