以下指令会将所有非www子域重定向到www子域。例如:
blog.myname.com
会重定向到www.blog.myname.com
RewriteEngine On
RewriteCond %{HTTP_HOST} ^((?!www)[^\.]*)\.myname\.com$ [NC]
RewriteRule ^ http://www.%1.myname.com%{REQUEST_URI} [L,R=301]
我会更精确。在我的根目录中,我创建了一个目录调用博客,因此目录结构现在就像这个myname.com/blog
。
这是用户访问我的页面时所需要的:
myname.com
或www.myname.com
- >用户将在根目录中看到索引文件。没有变化。hello.myname.com
- >它会添加www,因此它会变成www.hello.myname.com
并重定向到www.hello.myname.com
www.hello.myname.com
- >用户被重定向到myname.com/blog
并且可以看到myname.com/blog
中的内容但是该网址已被屏蔽且仍显示www.hello.myname.com
原因是您可以测试ipohla.cheapantivirus.me
并且您可以在myname.com/blog
看到索引文件,但如果www.ipohla.cheapantivirus.me
域正确传播。这就是我需要将www添加到非www子域的原因。谢谢。
www.subdomain.myname.com
以下的当前.htacess不会在外部重定向,并且会看到myname.com/blog/index.html
目录的内容。
Options +FollowSymLinks -MultiViews
RewriteEngine On
# externally redirect all subdomains to www.subdomain...
RewriteCond %{HTTP_HOST} ^((?!www)[^\.]*)\.cheapantivirus\.me$ [NC]
RewriteRule ^ http://www.%1.cheapantivirus.me%{REQUEST_URI} [L,R=301]
# Proxy to www.cheapantivirus.com/blog/index.html for every subdomain
RewriteCond %{HTTP_HOST} ^(www\.)?((?!www)[^\.]*)\.cheapantivirus\.com$ [NC]
RewriteRule ^$ http://www.cheapantivirus.com/blog/index.html [P,L]
答案 0 :(得分:3)
您可以尝试这样的通用规则:
RewriteCond %{HTTP_HOST} ^(www\.)?((?!www)[^\.]*)\.cheapantivirus\.com$ [NC]
RewriteRule ^$ http://www.cheapantivirus.com/blog/index.html [P,L]
请注意,这需要在Apache中启用mod_proxy。
这将代理:
www.blog.cheapantivirus.com to www.cheapantivirus.com/blog/index.html
www.blog.cheapantivirus.com to www.cheapantivirus.com/blog/index.html
www.subdomain.cheapantivirus.com to www.cheapantivirus.com/blog/index.html
www.foo.cheapantivirus.com to www.cheapantivirus.com/blog/index.html
由于它使用P
标志,因此不会导致您的浏览器网址发生变化。
答案 1 :(得分:0)
如何将用户重定向到www.blog.myname.com/blog/index.html,但地址栏中的网址被屏蔽,只显示www.blog.myname.com
RewriteCond %{HTTP_HOST} ^www\.blog\.myname\.com$ [NC]
RewriteRule ^$ blog/index.html [L]
如果您想将来自www.blog.myname.com的所有请求发送到www.blog.myname.com/blog,请改用
RewriteCond %{HTTP_HOST} ^www\.blog\.myname\.com$ [NC]
#not already /blog/
RewriteCond %{REQUEST_URI} !^/blog/[NC]
#not an existing file or directory
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ blog%{REQUEST_URI} [L]
在您已有的重定向规则
之后,将以下内容添加到.htaccess
文件中