首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重写条件以检查是否不是两个URL

问重写条件以检查是否不是两个URL
EN

Stack Overflow用户
提问于 2012-03-23 18:13:28
回答 2查看 7.5K关注 0票数 1

如果用户已通过http://mysite或http://www.mysite访问网站,我将强制更改网址

然而,目前我只检查该网站不等于主子域名,这是http://store

我也有另一个子域,但这也被覆盖了,所以我需要改变我当前代码的工作方式,这是:

代码语言:javascript
复制
RewriteEngine On
RewriteCond %{HTTP_HOST} !^store\.mysite\.com [NC]
RewriteRule (.*) http://store.mysite.com/$1 [R=301,L]

我更愿意让它检查url是不是以下两种之一:

代码语言:javascript
复制
http://mysite.com
http://www.mysite.com

...and然后应用重写规则,我如何更改我的重写条件来执行此操作?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-23 23:10:29

试试这个--在这里工作得很好:

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} ^(mysite\.com|www\.mysite\.com)$ [NC]
RewriteRule .* http://store.mysite.com%{REQUEST_URI} [R=301,L]

  • 在这里我使用正则表达式模式放置了2个单一条件的域名。
  • 我也修改了一下RewriteRule (这是我喜欢这样做的方式)。
  • 你可能也想在这里添加QSA标志,因为它是301重定向(取决于你实际的URL) -- URL

其他方法:

1)每个域名单独条件(需要指定使用OR逻辑,不使用默认AND):

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} ^mysite\.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www\.mysite\.com$ [NC]
RewriteRule .* http://store.mysite.com%{REQUEST_URI} [R=301,L]

2)同上..但是使用纯文本比较而不是正则表达式:

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} =mysite.com [NC,OR]
RewriteCond %{HTTP_HOST} =www.mysite.com [NC]
RewriteRule .* http://store.mysite.com%{REQUEST_URI} [R=301,L]
票数 4
EN

Stack Overflow用户

发布于 2012-03-23 18:42:53

到目前为止,我已经这样做了:

代码语言:javascript
复制
RewriteCond %{HTTP_HOST} mysite\.com [NC]
RewriteCond %{HTTP_HOST} www\.mysite\.com [NC]
RewriteRule (.*) http://store.mysite.com/$1 [R=301,L]

这方面有没有可以改善的地方呢?

实际上,第一个RewriteCond没有检测到http://mysite.com

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9837394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档