2013-10-11 23 views
1

我們對Wordpress的.htaccess文件進行了一些修改,這是另一個在同一目錄中運行的應用程序(見下文)。正如你所看到的,我們插入一些RewriteCond,告訴WP重寫忽略對其他應用程序控制器的特定請求。.htaccess修改在本地生效但不生產

我們剛剛添加了一個規則(它在下面進行了評論),它在兩個本地開發環境(一個MAMP和另一個XAMP)上完全按照預期工作。當我們將其推送到我們的生產服務器時,新規則似乎沒有任何影響。我們沒有能夠導航到新目錄中的文件(/app/resumes/stamped/123.pdf),而是看到Wordpress「這是令人尷尬的」信息,表明請求仍然通過Wordpress路由。

mod_rewrite絕對有效,AllowOverride All已投入生產。我們還需要檢查什麼才能使其在生產環境中工作?

對我來說,最奇怪的部分是其他RewriteCond工作,所以我真的很困惑,爲什麼只有這一個新的行應該在生產環境中表現如此不同。

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

###This is the new rule 
RewriteCond %{REQUEST_URI} !/app/resumes/stamped/ 

RewriteCond %{REQUEST_URI} !^/admin 
RewriteCond %{REQUEST_URI} !^/pages 
RewriteCond %{REQUEST_URI} !^/tests 
RewriteCond %{REQUEST_URI} !^/users 
RewriteCond %{REQUEST_URI} !^/css/ 
RewriteCond %{REQUEST_URI} !^/js/ 
RewriteCond %{REQUEST_URI} !^/img/ 

RewriteRule . /index.php [L] 
</IfModule> 

# END WordPress 

更新

這是在.htaccess中/應用的哪些生活

RewriteEngine on 
RewriteBase /app/ 

#This is new too 
RewriteCond %{REQUEST_URI} ^/resumes/stamped/ 

RewriteRule (.*) webroot/$1 [L] 

更新2 我們剛剛得知的用戶名/密碼的授權請求報文(我使用Chromes的REST擴展來手動添加必要的標題),/ stamped目錄的.htaccess文件所需的成功。換句話說,它基本上正在工作,但我們無法分辨,因爲我們期望它提示輸入用戶名/密碼,因爲它在所有其他服務器上都這樣做。所以真正的問題是爲什麼授權提示(或缺乏授權)將我們置於此服務器上的Wordpress 404頁上?

更新3

這是htaccess文件... /加蓋

AuthType Basic 
AuthName "restricted area" 
AuthUserFile /home/username/public_html/.htpasswd 
require valid-user 

到htpasswd文件的路徑從開發到不同的生產,當然。

+0

你有'DOCUMENT_ROOT /應用程序中的任何.htaccess或任何地方下的目錄? – anubhava

+0

是的。我有一個/應用程序,我現在會更新。 – emersonthis

+0

我的直覺是正確的:P – anubhava

回答

0

Apache服務器上存在一個DirectAdmin,PHP-FPM和FastCGI問題,這些問題表現在奇怪的.htaccess行爲中。我曾經花了一個晚上試圖找出它:Only .php files loop with .htaccess redirect上述可能或可能不適用於你,但如果在本地服務器上一切正常但不在生產服務器上,我會在那裏尋找問題。

相關問題