- # return 4 urls, with and without trailing slash, with and without www
- # useful for matching urls passed as params into some function,
- # "does this url exist?"... need to make sure you check permutations
- def url_permutations(url)
- url, params = url.split("?")
- # without_trailing_slash, with www
- a = url.gsub(/\\/$/, "").gsub(/http(s)?:\\/\\/([^\\/]+)/) do |match|
- protocol = "http#{$1.to_s}"
- domain = $2
- domain = "www.#{domain}" if domain.split(".").length < 3 # www.google.com == 3, google.com == 2
- "#{protocol}://#{domain}"
- end
- # with_trailing_slash, with www
- b = "#{a}/"
- # without_trailing_slash, without www
- c = a.gsub(/http(s)?:\\/\\/www\\./, "http#{$1.to_s}://")
- # with_trailing_slash, without www
- d = "#{c}/"
- [a, b, c, d].map { |url| "#{url}?#{params}"}
- end
- ]
- #该片段来自于http://www.codesnippet.cn/detail/220420132940.html
来源: http://www.codesnippet.cn/detail/220420132940.html