2016-01-20 180 views
0

已更改爲新服務器並遷移了多個Wordpress網站。遷移後,我發現菜單鏈接不再有效。內容是那裏然而。遷移後的Wordpress問題

我刪除了htaccess文件,並將固定鏈接更改爲默認設置'plain'。這工作得很好。但是,現在我的網站正在使用菜單鏈接,如domain.com/?page_id=29。

在舊服務器上,我一直使用格式爲domain.com/post_name。所以我再次刪除了htaccess文件,並將永久鏈接改爲post_name,但點擊菜單中的鏈接總是給我一個404錯誤。檢查一個phpinfo()和mod_rewrite被啓用。

htaccess的文件現在的問題是:

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

如何找回工作的菜單鏈接時,固定鏈接設置爲postname?

+0

首先,你需要檢查是否mod_apache是在新服務器中啓用,然後將永久鏈接更改爲您的首選選項。 這應該做到這一點。 –

+0

你的意思是mod_rewrite?在那種情況下,我已經沒有任何運氣。 – wiwa1978

回答

1

在Linux上,以放鬆訪問文檔根目錄,應編輯以下文件:/etc/httpd/conf/httpd.conf中

如果你是在Ubuntu上,編輯文件/ etc/apache2的/ apache2的。配置(在這裏我們有/無功/網絡的一個例子)

取決於你想放鬆一下訪問哪些目錄級別,你必須

AllowOverride None 

改變指令

AllowOverride All 

因此,假設你想允許在訪問文件在/ var/www/html等目錄,您應該以下行從改變:

<Directory "/var/www/html"> 
AllowOverride None 
</Directory> 

<Directory "/var/www/html"> 
AllowOverride All 
</Directory> 
0

參考文檔,以便您: https://codex.wordpress.org/Using_Permalinks

我把它當你說LNKS停止菜單再次工作,你的意思是說該鏈接改變罰款的http://domain/post_name權的新的永久鏈接的格式?

如果是這樣,你的問題在於mod_redirect。無論是在docroot中的.htaccess(打開它並擁有正確的重定向規則),也可以在你的apache web服務器配置文件中。也許apache甚至沒有啓用mod_redirect。如果它是一個CPANEL服務器,mod_redirect可能會啓用。

+0

我澄清了原帖。我使用「sudo a2enmod rewrite」啓用了mod_rewrite。在我的phpinfo()中,我可以看到模塊已加載。話雖如此,問題依然存在。點擊一個菜單項會給我一個找不到的錯誤。將永久鏈接放回「醜陋」設置,可行。但那不是我想要的...... – wiwa1978

0

問題也可以是文件的路徑。您是否使用與舊服務器相同的用戶名和相同路徑遷移帳戶?

如果路徑與舊服務器不同,請使用db的mysql轉儲,查找路徑並將其更改爲正確的新路徑。

如果路徑相同,那麼您可以通過重置固定鏈接來修復此問題,即首先將固定鏈接更改爲除當前鏈接之外的其他鏈接並保存,然後立即更改回舊的舊鏈接再次保存它。這在過去對我有效。