在mod_rewrite中保留双斜杠

时间:2010-11-06 23:05:43

标签: apache mod-rewrite

我到处搜索这个答案,并且已发布的答案不符合我的具体情况,因为它给我404错误,我不知道为什么。

我正在尝试重写此内容:/c.php?url=http://www.example.com

进入:/c/http://www.example.com

现在我在我的mod_rewrite中有这个:

RewriteEngine on
RewriteRule ^c/(.*)(/)?$ /c.php?url=$1

但是当它重写我试图发送到PHP脚本的url时,它会写一个“http:/example.com”,带一个斜杠而不是双斜杠。

我已经看到很多涉及THE_REQUEST规则的事情,但是当我尝试将它们应用到我的htaccess文件时,它们会失败。我不确定出了什么问题,我们非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

Apache删除路径中的多个斜杠。正如您已经提到过的,您可以通过检查 THE_REQUEST 中的请求行来解决此问题:

RewriteCond %{THE_REQUEST} ^[A-Z]+\ /c/([^?\ ]+)/?
RewriteRule ^c/ /c.php?url=%1