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

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

阅读 3.7k
1 个回答

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进