.htaccess htaccess重定向中变量的帮助

.htaccess htaccess重定向中变量的帮助,.htaccess,.htaccess,我想这样做,重定向: http://anySubdomain(通配符).mydomain.com/ 到 anysubdomain(通配符).mydomain.com/page2.php 我试过这个: RewriteCond %{HTTP_HOST} ^(.*)\.mydomain.com$ [OR] RewriteRule ^/?$ "http\:\/\/$1\.mydomain\.com\/page2\.php" [R=301,L] 但是它不工作,重写第二部分工作得很好,因为任何子域

我想这样做,重定向:

http://anySubdomain(通配符).mydomain.com/

anysubdomain(通配符).mydomain.com/page2.php

我试过这个:

  RewriteCond %{HTTP_HOST} ^(.*)\.mydomain.com$ [OR]
  RewriteRule ^/?$ "http\:\/\/$1\.mydomain\.com\/page2\.php" [R=301,L]
但是它不工作,重写第二部分工作得很好,因为任何子域都被重定向

但它达到了:“.mydomain.com/page2.php”


你能帮我吗?谢谢

你的重写有几个地方不对劲:

  • 这个[或]使它适用于一切事物
  • 你不需要逃避这么多规则的限制
  • 需要使用%1传递主机名变量
  • 它将创建一个无限循环,因为它还将尝试将page2.php重定向回自身
  • 应该做到:

    RewriteCond %{REQUEST_FILENAME} !.*page2.php$
    RewriteCond %{HTTP_HOST} ^(.*)\.mydomain.com$
    RewriteRule ^(.*)$ http://%1.mydomain.com/page2.php [R=301,L]
    

    您几乎做到了,您所做的使domain.com中的所有页面都重定向到page2.php。但我只希望根目录被重定向:我接受了你的代码,只改变了一件事,它做到了:RewriteCond%{REQUEST_FILENAME}*page2.php$RewriteCond%{HTTP\u HOST}^(.*)\.mydomain.com$RewriteRule^/?$HTTP://%1.mydomain.com/page2.php[R=301,L]^/$