登录

正则表达式 - apache .htaccess 网址 redirect 正则表示法

我想将所有的手机流量都导向至原访问URL/amp上
例如:
当手机访问 http://example.com 时 导向至 http://example.com/amp
当手机访问 http://example.com/123 导向至 http://example.com/123/amp

我需要透过apache伺服器做这项动作,所以我使用.htaccess做redirect
底下这段.htaccess的设定可以帮我做到把

RewriteEngine On
RewriteCond %{REQUEST_URI} !/amp$ [NC]
RewriteCond %{HTTP_USER_AGENT} (android|blackberry|googlebot\-mobile|iemobile|iphone|ipod|\#opera\ mobile|palmos|webos) [NC]
RewriteRule ^([a-zA-Z0-9-]+)([\/]*)$ http://7abbd517.ngrok.io/$1/amp [L,R=302]

http://example.com/123 导向至 http://example.com/123/amp
但是没办法帮我达成首页的redirect
也就是说
「X」 http://example.com 无法至 http://example.com/amp

请问该怎麽改写才能达到我最初的目标呢?

# Linux
巴扎黑 巴扎黑 2487 天前 864 次浏览

全部回复(1) 我要回复

  • 伊谢尔伦

    伊谢尔伦2017-06-28 09:29:47

    由于[a-zA-Z0-9-]后面的加号表示至少匹配1个元素,所以由于http://example.com无法匹配一个元素,+改成*即可,另外,[\/]外面的中括号没必要写。

    回复
    0
  • 取消 回复 发送