.htaccess - 执行以下操作的 .htaccess 重定向代码是什么?

标签 .htaccess mod-rewrite

为了争论,让我们假设:

  • 我的域名是 mydomain.com
  • 我有子域,例如 svn.mydomain.com

我想要:

  • 如果用户输入 mydomain.com 以外的任何内容(例如 mydomain2.com),则必须重定向到 mydomain.com
  • 如果用户输入任何没有子域的域,则必须重定向到 www.mydomain.com,请记住,此规则不得影响 svn.mydomain.com 等子域
  • 如果类型为 svn.mydomain2.com,则必须重定向到 svn.mydomain.com

有什么帮助吗?

到目前为止的解决方案:

RewriteCond %{HTTP_HOST} !^(www\.)?namhost\.com$ [NC]
RewriteRule (.*)  http://www.namhost.com/$1 [R=301,L]

这会将不包含 namhost.com 的任何内容重定向到 www.namhost.com。例如:namhost.net --> namhost.com,www.namhosting.com --> namhost.com。现在我只需要以下规则:

  1. 排除“localhost”被重定向到 www.namhost.com
  2. 将子域重定向更改为 namhost.com。例如:someSubDomain.parkeddomain.com 必须转到 someSubDomain.namhost.com。一个真实的例子:ftp.namhosting.com --> ftp.namhost.com

谢谢!

最佳答案

RewriteEngine On


#check if it's not mydomain.com
RewriteCond %{HTTP_HOST} !^(www\.)?mydomain\.com$ [NC]
#check if it's not a subdomain
RewriteCond %{HTTP_HOST} !^(.*)\.([A-Za-z0-9\-]+)\.(.{2,3}) [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([A-Za-z0-9\-]+)\.(.{2,3}) [NC]
#check if it's not one of determind sub-domains
RewriteCond %{HTTP_HOST} !^(svn|sql|pdf)\.([A-Za-z0-9\-]+)\.(.{2,3})$
#Redirect request to mydomain.com
RewriteRule (.*)  http://www.mydomain.com/$1 [R=301,L]


#check if it's sub-domain and it's not mydomain.com's subdomain
RewriteCond %{HTTP_HOST} !^(www\.)?mydomain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(svn|sql|pdf)\.mydomain\.com$
RewriteCond %{HTTP_HOST} ^(svn|sql|pdf)\.([A-Za-z0-9\-]+)\.(.{2,3})$  [NC]
RewriteRule (.*)  http://%3.mydomain.com/$1

如果需要任何更改,请告诉我!:-)

RewriteCond %{HTTP_HOST} !^(.*\.)?namhost\.com$ [NC]
RewriteCond %{HTTP_HOST} !^localhost$ [NC]
RewriteRule (.*)  http://%1namhost.com/$1 [R=301,L]

关于.htaccess - 执行以下操作的 .htaccess 重定向代码是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169625/

相关文章:

python - .htaccess 在 OpenShift 上似乎被忽略了

apache - Symfony2项目/web目录中禁止访问

php - 具有最佳缓存控制的网站

regex - 如何将 mod_rewrite(QSA 选项)转换为 Nginx 等效项?

php - .htaccess 在亚马逊 ec2 ubuntu 实例中不工作

.htaccess - htaccess/mod_rewrite/SSL |如果 : http off and (basket or order), 301 https,否则 301 http

apache - Varnish :可缓存但未缓存

php - .htaccess 规则会重写地址栏中的 URL

.htaccess - 拒绝访问文件夹内的文件但允许 REST API

php - htaccess 重写本地主机的更改