我使用Baikal CalDAV和CardDAV服务器让我的联系人和日历保持同步。它与我的所有客户都很好用。对于iPhone和Mac支持者,我甚至在我的Apache vHost文件中添加了/.well-known/
重定向规则。
联系人同步适用于以下网址:
myurl/html/card.php/principals/(username)
我想让其他用户缩短此网址。我以为我可以用Apache上的mod_rewrite
来做,但是我无法使它工作。
我想重写
myurl/(username)
到
myurl/html/card.php/principals/(username)
看起来非常简单,但我最终得到的是递归重定向。我使用了以下重写规则
RewriteRule ^(.*) /html/card.php/principals/$1
任何帮助都将不胜感激。
答案 0 :(得分:1)
是的,这是一个重写循环错误。
(.*)
匹配任何包含目标uri的uri,并将其重写回自身,从而导致无限循环错误。
为避免此错误,我们需要排除我们要重写的路径。
RewriteCond %{REQUEST_URI} !^/html/card.php/principal/
RewriteRule (.*) /html/card.php/principal/$1
现在规则是有条件的,它会将 / foo 重写为 /html/card.php/principal/foo 它不会重写 / html / card .php / principal / foo 到 /html/card.php/principal/foo 。