在mod_rewrite中保留双斜线

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

我正试图重写这个: /c.php?url=http://www.example.com : /c.php?url=http://www.example.com

进入这个:/ /c/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文件时,它们失败了。 我不知道什么是错,任何帮助将不胜感激。

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

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