我试图建立一个测试网站,但真正的麻烦让.htaccess
重定向正确。.htaccess重定向URL但不包含子域的内容
我希望www.example.com/test
的内容在用户输入test.example.com时显示。我的重写规则允许我在地址栏中使用test.example.com
,但它实际上向我显示了根(www.example.com
)的内容,而不是test
子文件夹。
我不是.htaccess
guru,但我一直在使用堆栈溢出5年,这是我第一次被困住足以问一个问题!你的集体智慧值得赞赏。
这里是我的.htaccess
代码中的相关部分:
RewriteEngine On
# Rewrite for http cases
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L]
# Rewrite for no www cases
RewriteCond %{HTTP_HOST} !www\.example\.com [NC]
#redirect for test subdomain
RewriteCond %{HTTP_HOST} !^test\.example\.com$ [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L]
# redirect to correct for old subfolder usage
RewriteRule ^oldsubfolder/$ https://www.example.com/ [L,R=301]
非常好!谢谢。我会试试这个。我认为代码可能不会重定向到子域,但是当我通过我的webhost创建子域时,我想它正在处理.htaccess之外的重定向。至少这是我以前做过的事情。 –
这似乎工作。我希望它会继续在地址栏中显示test.example.com - 它现在只是将我引导到www.example.com/test - 但这不是什么大问题。有用!谢谢。 –
是的,你仍然可以在地址栏中显示'test.example.com'。如果子域指向与主域相同的文件系统区域,则可以实现_internal rewrite_而不是_external redirect_。我已经更新了我的答案。 – MrWhite