Mod rewrite 重写规则导致500个错误

Mod rewrite 重写规则导致500个错误,mod-rewrite,Mod Rewrite,这是我的规则: RewriteRule ^forward/?$ forward.php?url=$1 - [NC,L] 这就是我想要的: 浏览器URL:http://mydomain.com/forward/http://anydomainhere.com 重写为:http://mydomain.com/forward.php?url=http://anydomainhere.com 如果匹配,这将是最后一条规则。现在它给我一个500错误,我不知道为什么。从重写规则中删除连字符,它应该可以工作

这是我的规则:

RewriteRule ^forward/?$ forward.php?url=$1 - [NC,L]
这就是我想要的:

浏览器URL:
http://mydomain.com/forward/http://anydomainhere.com

重写为:
http://mydomain.com/forward.php?url=http://anydomainhere.com


如果匹配,这将是最后一条规则。现在它给我一个500错误,我不知道为什么。

从重写规则中删除连字符,它应该可以工作:

RewriteRule ^forward(/.*)?$ forward.php?url=$1   [NC,L]

错误500通常意味着服务器配置错误,在您的情况下是重写规则。您通常可以在Apache的错误日志中查找详细信息,了解到底发生了什么。在您的情况下,似乎您的重写规则在语法上是错误的

这对我很有用:

RewriteRule ^forward/(.*)$ forward.php?url=$1 [NC,L]

您不能使用
RewriteRule
捕获带有
/
的URL,因为Apache将其拆分为单个
/
。将
ReeriteCond
%{THE_REQUEST}
变量一起使用:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+forward/([^?\s]+) [NC]
RewriteRule ^ forward.php?url=%1 [L,NE,QSA]

检查日志以了解出现500错误的原因。是否加载了mod_重写?