【发布时间】:2013-01-13 03:20:41
【问题描述】:
我的 .htaccess 中有以下行
RewriteRule ^folder/(.*)$ /folder/?value=$1 [L]
当我在http://website.com/folder/value 有任何内容时,这总是会给我一个 500 内部错误。
如果我简单地把它改成
RewriteRule ^folder/(.*)\.html$ /folder/?value=$1 [L]
它会将我正确发送到http://website.com/folder/value.html,其中 value.html 在 $_GET 中设置。
我希望能够接受任何东西,例如 value、value.com、value-4、otheritem。
关于为什么我的正则表达式每次都是 500 Internal Server Error'ing 的任何想法?
【问题讨论】:
-
RewriteRule ^folder/(.+)$ /folder/?value=$1 [L]像这样试试。*表示,ZERO或MORE匹配。+表示ONE或MORE -
不会改变任何东西。不过谢谢你的提示。
-
你得到的是 404 还是 500?你的错误日志是怎么说的?
-
嘿,当你这样做时你得到了什么:
RewriteRule ^folder/(.+) /folder/?value=$1 [L]。我认为立即将$与通配符一起使用是没有意义的。所以试试^folder/(.+) -
500 错误,但是当我删除
$时,我得到 404。