2013-07-06 125 views
4

我將當前的.htaccess文件上傳到1and1服務器(實際上是1und1.de,但我想它是一樣的),並且發生500內部服務器錯誤。.htaccess在本地工作,但不在1and1服務器上

Options -MultiViews 
RewriteEngine On 
RewriteBase /lammkontor 

RewriteRule ^categories/([^/\.]+)/?$ index.php?url=category.php&cat_url=$1 [L] 
RewriteRule ^categories/([^/\.]+)/([^/\.]+)/?$ index.php?url=product.php&cat_url=$1&prod_url=$2 [L] 
RewriteRule ^categories/([^/\.]+)/([^/\.]+)/recipes?$ index.php?url=recipes.php&cat_url=$1&prod_url=$2 [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.+\.php)/?$ index.php?url=$1 [QSA] 

這個.htaccess可以在我的本地MAMP服務器上完美工作。

當我測試的CGI-監測控制中心用一個例子文件,我得到 - cgi: File not present or has invalid modes (no output)

的唯一文件的工作現在的index.php

感謝您的幫助!

+0

看看你的apache日誌,它通常會告訴你更多關於爲什麼會有500錯誤的細節。 –

+0

1.通過訪問文件url確保文件實際存在。 2.確保文件具有正確的權限。如果1有效,那麼2應該沒問題。 –

+0

嘗試刪除'選項-MultiViews',看看你是否仍然得到500錯誤,那麼它不會得到500,你的httpd.conf中可能有配置差異 –

回答

1

默認情況下,apache的htaccess權限已關閉或受限於您的主機。 我嫌疑人其你的Options -MultiViews導致錯誤。

檢查您的httpd.conf並檢查MultiViews是否允許如下。

<Directory /> 
    Options FollowSymLinks 
    AllowOverride Indexes Options=All,MultiViews 
    Order deny,allow 
    Deny from all 
</Directory> 
+0

感謝您的輸入... – denoise

9

其實我解決我的問題增加了斜線的每一個重寫規則的開始,如:

RewriteRule ^(.+\.php)/?$ /index.php?url=$1 [QSA] 

,而不是

RewriteRule ^(.+\.php)/?$ index.php?url=$1 [QSA] 

謝謝!

相關問題