2012-10-19 25 views
0

我的服務器或暫存服務器上有一個奇怪的行爲,我們需要看看實際問題在哪裏。下面是從流行的WordPress的CMS一些知名代碼:爲什麼Wordpress會阻止訪問一臺服務器上的wp-content文件,但不能訪問具有相同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> 

# END WordPress 

AddHandler application/x-httpd-php53 .php 

與原代碼的唯一區別是增加了「的AddHandler」在這是需要我們臨時託管服務提供商的文件的末尾。

真正的問題是我可以在我的開發服務器(基於內部Ubuntu的12.04標準服務器)上的以下虛擬URL上訪問文件,而不是在生產或臨時(它們都是同一臺服務器)上訪問文件。

  1. /wp-content/test.php
  2. /wp-content/themes/test.php
  3. /wp-content/themes/wpactivis/test.php
  4. /可溼性粉劑內容/主題/ wpactivis/_/test.php的現在
  5. /wp-content/themes/wpactivis/_/ajax/test.php

在一組服務器,這些URL返回404和WordPress似乎在我們的開發服務器上啓動automaticaly,200 OK和t他文件內容是回報這是典型的「Hello World」的測試......

任何htaccess的大師能告訴我應該是什麼粘貼代碼的實際行爲,它應該是一樣的臨時服務器或開發服務器。

我傾向於認爲它應該像開發服務器,任何文件訪問或目錄的訪問應該被授予,而不是返回404因爲:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

條件!

謝謝

注:不要告訴我這是一個糟糕的方式一樣,我不想聽到的代碼Wordpress或東西。我們有一個完全安全的設置,並且可以直接訪問我的插件或主題目錄中的文件是無關緊要的。類似的問題在網上發佈,但沒有答案,只有人說你應該這樣做。 我在這裏嘗試的是得到一個答案,爲什麼它在一臺服務器上而不是另一臺服務器上。

回答

1

沒關係,主機發現問題,但我會回答,讓其他人可以真正依靠它。

我們的主機使用基於CPanel的安裝,其中包含一個模塊,用於防止可分組寫入的服務文件。

要將網站從開發遷移到分期,我們選擇了「BackupBuddy」解決方案,這是一個很好的小型WordPress站點部署解決方案......問題?它提取了775以下的文件。這導致我們在安裝WordPress的ajax文件時遇到問題。

爲了解決這個問題,如果你有你的服務器的SSH訪問,中庸之道遞歸更改目錄權限設置爲755和644使用的文件:

find . -type f -print -exec chmod 644 {} \; 
find . -type d -print -exec chmod 755 {} \; 

祝你好運,我希望這可以幫助其他人。

相關問題