2012-11-22 116 views
0

我有我的本地Windows機器上的apache & PHP和我的.htaccess規則工作正常。我將我的所有文件上傳到我的Linux服務器,並獲得不同的結果。我完全控制了我的Linux VPS。它不是共享主機或任何東西。 我創建了一個文件showme.php,所有請求都應該去。 showme.php只是輸出一些$ _SERVER變量,所以我知道它的工作。但是對服務器的每個請求都會給我404找不到。同樣的請求本地提供showme.php像它應該。.htaccess在本地工作,但不在服務器上

- 本地例如:http://localhost/somepage(我得到showme.php呈現正確的頁面)

-Server例如:http://mydomain.com/somepage(我得到一個404消息)

這是我的.htaccess文件。我無法弄清楚爲什麼我會得到不同的結果。有文件權限的東西?

# AddType x-mapp-php5 .php 
# AddHandler x-mapp-php5 .php 

RewriteEngine on 
Options +FollowSymlinks 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . showme.php [L] 

ErrorDocument 404 /page-unavailable/ 

<files ~ "\.tpl$"> 
order deny,allow 
allow from none 
deny from all 
</files> 
+0

是mod_rewrite在該服務器上啓用? – noslone

+0

僅供參考,我已經檢查和mod_rewrite啓用時,我檢查與phpinfo(); – Thread7

+1

您可能不允許覆蓋啓用 - 檢查Apache錯誤日誌。 – Kami

回答

0

答案是,在我的httpd.conf我需要的AllowOverride所有集一個特定的地方。它在某些目錄中,但我猜不是默認的..

0

如果使用phpinfo()並做mod_rewrite搜索(通常在配置),你將能夠告訴,如果你有使用RewriteRules的能力。這通常就是爲什麼你看到IfModule纏着你重寫:

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . showme.php [L] 
</IfModule> 
+0

答案是,在我的httpd.conf中,我需要將AllowOverride All設置在某個特定位置。它在某些目錄中,但我猜不是默認的。 – Thread7

相關問題