阿里云虚拟主机之301跳转

今天客户咨询要做301跳转,不带WWW的网页,默认全转向带www的。

主机面板中就有此功能,但咨询阿里云技术下来得到的结论是:
301跳转只适合首页。

如果代码实现:
NT主机。配置web.config代码:

<rewrite>
  <rules>
    <rule name="Redirect to www" stopProcessing="true">
      <match url="(.*)" />
      <conditions trackAllCaptures="false">
        <add input="{HTTP_HOST}" pattern="^domain.com$" />
      </conditions>
      <action type="Redirect"
        url="{MapProtocol:{HTTPS}}://www.domain.com/{R:1}" />
    </rule>
  </rules>
  <rewriteMaps>
    <rewriteMap name="MapProtocol">
      <add key="on" value="https" />
      <add key="off" value="http" />
    </rewriteMap>
  </rewriteMaps>
</rewrite>

上面只适合.NET页面。
静态页无用。
后帮客户用JS实现了。
代码如下:

if( !/\.?www./g.test(location.host) ) location.href = location.href.replace("://","://www.")

新版visual studio code的正则改进

这些年前端后端的开发软件更新非常快。

一两年时间微软的visual studio code就占据了很大市场,特点:免费、快速、更新及时。

截了个运行时的提示图。

正好相应我上一篇文章:正则表达式学习笔记(1):回溯引用匹配与正则替换

这里多了个代码(?=<)这个里面的?=表述的含义是取<之前的文,注意不包括<号。

更多可以参考:https://www.regular-expressions.info/lookaround.html

实际在我之前VSC中调试正则,还不太方便,这次改进方便多了。

利用正则改文件名

应用场景:从youtube下载了上百个视频,这位视频主人一大爱好就是加表情。下载到本地的文件名中有各种框,心形等字符,但这种文件名,是上传不了百度云的。

我的目标就是去掉文件名中的这些字符。

 

自个写的简单的域名匹配正则

表达式:[0-9a-z-]+\.(com\.cn|net\.cn|com|net|cn)

解释说明:[0-9a-z-]+,[0-9a-z-]为数字与字母及“-”,后面的加号表现一或多次。(这里简单写了,实现复杂的话中划线不能为首或为尾,长度1-63)

点要转义,所以前面多加个了\线,域名后缀先写长的.com.cn,再写.com,以免匹配sina.com.cn这种时,只匹配到sina.com就停了。

yikai.cn
lunji.com
360.com
www.abc.com
sina.com.cn
my website is www.lunji.com

正则匹配域名

wordpress的urlrewrite功能在IIS8 WIN2012下的配置

将操作系统从WIN2008升级至WIN2012,发现wordpress的urlrewrite功能不行了。

怀疑是不是IIS8下的web.config与IIS7.5的有不同?

经排查,将应用程序池,托管通道模式,设置成经典模式。

就可以了。

<?xml version=”1.0″ encoding=”UTF-8″?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name=”category”>
<match url=”category/?(.*)” />
<conditions logicalGrouping=”MatchAll” trackAllCaptures=”false” />
<action type=”Rewrite” url=”/index.php?category_name={R:1}” appendQueryString=”false” logRewrittenUrl=”false” />
</rule>
<rule name=”tags”>
<match url=”tag/?(.*)” />
<conditions logicalGrouping=”MatchAll” trackAllCaptures=”false” />
<action type=”Rewrite” url=”index.php?tag={R:1}” />
</rule>
<rule name=”Main Rule” stopProcessing=”true”>
<match url=”.*” />
<conditions logicalGrouping=”MatchAll” trackAllCaptures=”false”>
<add input=”{REQUEST_FILENAME}” matchType=”IsFile” negate=”true” />
<add input=”{REQUEST_FILENAME}” matchType=”IsDirectory” negate=”true” />
</conditions>
<action type=”Rewrite” url=”index.php/{R:0}” />
</rule>
<rule name=”wordpress” patternSyntax=”Wildcard”>
<match url=”*” />
<conditions logicalGrouping=”MatchAll” trackAllCaptures=”false”>
<add input=”{REQUEST_FILENAME}” matchType=”IsFile” negate=”true” />
<add input=”{REQUEST_FILENAME}” matchType=”IsDirectory” negate=”true” />
</conditions>
<action type=”Rewrite” url=”index.php” />
</rule></rules>
</rewrite>
</system.webServer>
</configuration>