MVC htaccess重写

你好我有我的mvc我的htaccessconfiguration的问题。 IDK我做错了什么? 所有的时间,我有这个消息500:

内部服务器错误

服务器遇到内部错误或configuration错误,无法完成您的请求。

请联系服务器pipe理员admin @ localhost,并告知他们发生错误的时间,以及您可能已经做了的任何可能导致错误的事情。

有关此错误的更多信息可能在服务器错误日志中可用。

我想使url重写索引。 尝试做这样的事情

www.example.com/index.php/controller/method/param

www.example.com/index.php?url=controler

我的.htaccess看起来像这样:

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.+) index.php?url=$l [QSA,L] 

我做错了什么? 我阅读http://httpd.apache.org/docs/current/rewrite/flags.html并做如何解释。

如果您的.htaccess隐藏文件位于主根目录中,请检查这些配置指令:

 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^index\.php/([a-zA-Z0-9_-]+)/method/param$ /index.php?url=$1 [QSA,L] 

它会将http://www.example.com/index.php/ $ var / method / param重写为http://www.example.com/index.php?url= $ var,但请确保您的.htaccess文件位于主根目录中。

你最后一行有错误:

 RewriteRule ^(.+) index.php?url=$l [QSA,L] 

它应该是:

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

换句话说,将$ l(字母el)更改为$ 1(数字1)。 另外,你可能希望你的$在括号之后来关闭这一行。

 <Ifmodulee mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_URI} !-f RewriteCond %{REQUEST_URI} !-d RewriteCond %{REQUEST_URI} !-l RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] </Ifmodulee> 

这一个应该工作

 http://www.mysite.com/stats 

=>

 http://www.mysite.com/index.php?url=stats 

试试这个:

 <Ifmodulee mod_rewrite.c> Options +FollowSymLinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?url=$1 [L] </Ifmodulee>