我搜索并阅读了很多......但没有任何作用。
我正在尝试重写
subdomain.domain.com 到 domain.com/folder / 然后,当这个工作时,我想拥有域很容易。 COM /文件夹/子域
我尝试将其放在.htaccess文件中,该文件位于服务器的根目录中。
RewriteCond %{REQUEST_URI} !^/folder/
RewriteCond %{HTTP_HOST} ^(.+)\.domain\.com
RewriteCond %{HTTP_HOST} !^www\.domain\.com
RewriteRule ^(.*)$ /folder/ [L]
但是我收到了Not Found错误:
在此服务器上找不到请求的URL /文件夹。
此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误。
Apache / 2.4.9(Unix)OpenSSL / 1.0.1e-fips mod_bwlimited / 1.4服务器在subdomain.domain.com端口80
但http://domain.com/folder/确实存在。
重定向确实有效,但这不是我想要的:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^subdomain.domain.com
RewriteRule ^(.*)$ http://domain.com/folder/subdomain/$1 [L,NC,QSA]
为了帮助我理解发生了什么,我将[L]更改为[R](在第一段代码中),
RewriteRule ^(.*)$ /folder/ [R]
和重定向,这是一个无限循环,转到
http://subdomain.domain.com/folder/ 不要 http://domain.com/folder/ 如预期......
我该如何纠正?如何让重写“离开”子域?
答案 0 :(得分:0)
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.domain\.com$
RewriteCond %{HTTP_HOST} ^([^\.]+)\.domain\.com$
RewriteRule . http://domain.com/folder/%1%{REQUEST_URI}
表示subdomain.domain.com/somefile.html - > domain.com/folder/subdomain/somefile.html。 子域必须指向与域相同的虚拟主机。