![](/img/trans.png)
[英]MVC 4 Lose Session Because Redirects From www.website.com to website.com
[英]Match both www.website.com and website.com with sql like
我有一个包含网站列表的表。
我有一个sql变量@url,我想选择网站等于@url的所有行。 但是,如果没有子域,我要匹配www和根域。
因此,如果@ url =' http://website.com ',则应同时匹配' http://website.com '和' http://www.website.com '
我正在做
select * from websites a
where b.archived = 0
and @url like replace(a.WebsiteURL, '*', '%')
order by newid()
显然,这没有考虑到www问题。
任何想法如何解决这个问题?
我当时想强制添加www。 如果它不存在(并且url没有子域),则将其添加到数据库中。 但是,实际上没有www并将www重定向到根目录的网站呢?
您应该使用SQL的RegexMatch(或类似功能)。 使用“ http://(?:www。)?whatever.com ”的正则表达式测试时,应同时匹配“ http://whatever.com ”和“ http://www.whatever.com ”。
http://website.com
http://www.website.com
反转弦
moc.etisbew//:ptth
moc.etisbew.www//:ptth
-对输入字符串执行一次
Search Str = replace(replace(Str,'www',''),'http://')
也反转输入字符串
moc.etisbew
现在,您可以搜索和使用索引。 您可以创建一个更新触发器来自动填充反向字段,该字段永远不会显示给用户,而只会显示可索引字段。
有点奇怪,但应该可以为您提供很好的查询性能
您可以将WebsiteURL列分为WebsiteScheme,WebsiteSubdomain,WebsiteDomain列。 因此,检查将变为:
@url = WebsiteScheme + '://' + WebsiteSubdomain + '.' + WebsiteDomain OR
@url = WebsiteScheme + '://' + WebsiteDomain AND WebsiteSubdomain = 'www'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.