尝试使用htaccess实现子域。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^www.
RewriteCond %{HTTP_HOST} ^([a-z0-9]+)\.domain.com(.*)$
RewriteRule ^(.*)$ http://domain.com/index.php?/public_site/main/%1/$1 [L]
</IfModule>
当我输入 ahser.domain.com 时,浏览器网址正在发生变化。是否有一个htaccess选项,在RewriteRule中使用绝对URL时不会发生这种情况?
答案 0 :(得分:0)
不要重写为包含域名的完整网址。这会产生一个重定向,因为它会转到另一个网站!你可以把microsoft.com
放在那里;那么如果没有重定向它会如何工作?
您需要做的是确保网页在原始域下运行。因此,当客户端要求myname.domain.com/...
如何将其重写为myname.domain.com/index.php?public_site/main/myname/...
时。保持域名相同。 index.php?
可以在任何这些域中使用。例如,即使这样也可行:
http://OTHER.domain.com/index.php?public_site/main/MYNAME/...
即。设置它以便哪个虚拟主机访问该路径无关紧要。
一旦你有了,那么重写就可以了:
# will not trigger redirect
RewriteRule ^(.*)$ /index.php?/public_site/main/%1/$1 [L]
您必须小心不要引入循环,因为您现在将URL重定向到更长的URL,该URL与相同的重写rulet相同的域匹配。如果网址已经以RewriteCond
开头,则您需要额外的/index.php?public_site/
才能应用此重写。