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_重写?