什么是URL中的〜意思

时间:2013-11-12 01:34:14

标签: c# url sitecore

我有一个使用Sitecore在C#中开发的网站,我有这个网址:

http://dev.take.com.web.unity.internal.com/~/media/group/images/media/content/19590.ashx?h=180&mh=219&mw=514&w=5120

对于某些图片,我不理解此URL以及(〜)符号的含义。

2 个答案:

答案 0 :(得分:7)

在Sitecore中,~/media/是一个触发媒体处理程序的URL前缀,后者又会告诉Sitecore该请求是针对媒体库项目的。这些请求的处理方式与站点根目录下的项目请求不同。

前缀在web.config的sitecore/customHandlers部分中定义:

<customHandlers>
   <handler trigger="~/media/" handler="sitecore_media.ashx" />
</customHandlers>

如果您决定更改此值,您还需要更新以下设置,以便使用新前缀生成新链接:

<setting name="Media.MediaLinkPrefix" value="" />

也就是说,如果您有在Rich Text编辑器中创建的媒体项目的预先存在的链接,那么添加一个额外的前缀可能更聪明,以便保留默认的~/media/前缀有效。要配置其他前缀,请将它们添加到web.config的<mediaPrefixes>部分,如下所示:

<!-- MEDIA REQUEST PREFIXES
     Allows you to configure additional media prefixes (in addition to the prefix defined by the Media.MediaLinkPrefix setting)
     The prefixes are used by Sitecore to recognize media URLs.
     Notice: For each custom media prefix, you must also add a corresponding entry to the <customHandlers> section
-->
<mediaPrefixes>
  <!-- Example
  <prefix value="-/media"/>
  -->
</mediaPrefixes>

答案 1 :(得分:1)

Specification of the URI: RFC 3986

reserved = gen-delims / sub-delims  
gen-delims  = ":" / "/" / "?" / "#" / "[" / "]" / "@"  
sub-delims  = "!" / "$" / "&" / "'" / "(" / ")"  
                  / "*" / "+" / "," / ";" / "="

它没有保留字符列表,这意味着它没有什么特别之处。通常它是一个目录的指示。

  

2.3。未保留的字符

     

URI中允许但没有保留的字符   目的被称为无保留。这些包括大写和小写   字母,十进制数字,连字符,句号,下划线和波浪号。

unreserved  = ALPHA / DIGIT / "-" / "." / "_" / "~"