.htaccess在本地工作,但不在1and1服务器上工作

den*_*ise 5 apache .htaccess mod-rewrite rewrite

我将当前的.htaccess文件上传到1and1服务器(实际上是1und1.de,但我猜它是一样的)我正在调整500内部服务器错误.

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]
Run Code Online (Sandbox Code Playgroud)

这个.htaccess在我当地的MAMP服务器上运行得很好.

当我用一个示例文件在控制中心测试CGI-Monitor时,我得到了 - cgi: File not present or has invalid modes (no output)

现在唯一正在运行的文件是index.php

谢谢你的帮助!

den*_*ise 12

实际上我解决了我的问题,在每个重写规则的开头添加一个斜杠,如:

RewriteRule ^(.+\.php)/?$ /index.php?url=$1 [QSA]
Run Code Online (Sandbox Code Playgroud)

代替

RewriteRule ^(.+\.php)/?$ index.php?url=$1 [QSA]
Run Code Online (Sandbox Code Playgroud)

谢谢!