Mod 在 Owncloud 中重新编写 CalDav 和 CardDav url
Mod Rewirte for CalDav and CardDav urls in Owncloud
我想缩短我的 owncloud caldav 和 carddav 网址。
当前网址为:
https://site.mysite.com/owncloud/remote.php/caldav/principals/edison/
https://site.mysite.com/owncloud/remote.php/carddav/addressbooks/edison/contacts
注意:名字 edison 和后面的名字是动态的,它会根据用户而改变。
我希望它是
https://site.mysite.com/caldav/principals/edison/
https://site.mysite.com/carddav/addressbooks/edison/contacts
.htaccess file contains
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !\.sso/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
例如:
如果用户请求https://site.mysite.com/caldav/principals/edison/。然后它应该重定向到 https://site.mysite.com/owncloud/remote.php/caldav/principals/edison/
如何使用 mod_rewrite 完成?
mod_rewrite 使用动态部分
为请求的 URL 添加路径
从服务器根目录开始,在 RewriteRule
"pattern" 参数中输入请求的 URL 路径,在 "substitution" 参数中输入所需的路径。形式为:
RewriteRule pattern substitution [flags]
在这种情况下:
RewriteRule ^caldav/principals/edison/$ owncloud/remote.php/caldav/principals/edison/ [L]
如果 URL 的一部分(斜杠之间)发生变化,并且您不想(或不能)为每种情况编写规则,则使用正则表达式 ([^/]+)
捕获动态部分并使用 RE 捕获变量 </code>:</p> 将其注入到您的替换路径中
<pre><code>RewriteRule ^caldav/principals/([^/]+)/$ owncloud/remote.php/caldav/principals// [L]
第一组括号为</code>,第二组为<code>
,以此类推。捕获括号可以嵌套。
将更具体的规则放在规则列表的较高位置,将更一般的规则放在列表的较低位置。所以我建议把这个规则放在第一位,就在 RewriteBase /
.
之后
我想缩短我的 owncloud caldav 和 carddav 网址。
当前网址为:
https://site.mysite.com/owncloud/remote.php/caldav/principals/edison/
https://site.mysite.com/owncloud/remote.php/carddav/addressbooks/edison/contacts
注意:名字 edison 和后面的名字是动态的,它会根据用户而改变。
我希望它是
https://site.mysite.com/caldav/principals/edison/
https://site.mysite.com/carddav/addressbooks/edison/contacts
.htaccess file contains
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !\.sso/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
例如:
如果用户请求https://site.mysite.com/caldav/principals/edison/。然后它应该重定向到 https://site.mysite.com/owncloud/remote.php/caldav/principals/edison/
如何使用 mod_rewrite 完成?
mod_rewrite 使用动态部分
为请求的 URL 添加路径从服务器根目录开始,在 RewriteRule
"pattern" 参数中输入请求的 URL 路径,在 "substitution" 参数中输入所需的路径。形式为:
RewriteRule pattern substitution [flags]
在这种情况下:
RewriteRule ^caldav/principals/edison/$ owncloud/remote.php/caldav/principals/edison/ [L]
如果 URL 的一部分(斜杠之间)发生变化,并且您不想(或不能)为每种情况编写规则,则使用正则表达式 ([^/]+)
捕获动态部分并使用 RE 捕获变量 </code>:</p> 将其注入到您的替换路径中
<pre><code>RewriteRule ^caldav/principals/([^/]+)/$ owncloud/remote.php/caldav/principals// [L]
第一组括号为</code>,第二组为<code>
,以此类推。捕获括号可以嵌套。
将更具体的规则放在规则列表的较高位置,将更一般的规则放在列表的较低位置。所以我建议把这个规则放在第一位,就在 RewriteBase /
.