enter code here
您好,我的htaccess文件中包含以下代码。
我的通配符子域路由到“主文件夹”-在这里我放置了htaccess文件。
我有以下文件夹 “主文件夹” “主文件夹/ sub1” “主文件夹/ sub2” 等
调用子域-sub1.domain.com时,它应该路由到子文件夹“ sub1”(subfolder = subdomain)。
我尝试使用此代码
#Redirect to subdomainfolder if no special page is called
RewriteCond %{HTTP_HOST} ^(.*)\.domain\.com$ [NC]
RewriteRule ^$ %1/index.html [L]
#Redirec to subdomainfolder if a special page is called
RewriteCond %{HTTP_HOST} ^(.*)\.domain.com(.*)$ [NC]
RewriteRule ^(.*) %1/$1 [L]
第一个规则运行良好,但是如果添加第二个规则,则会收到内部服务器错误。
这有什么问题-我如何以这种方式更改第一条规则,使其与.com之后的所有url参数一起使用-这就是我添加第二条规则的原因。
希望我对此有所帮助。非常感谢。
答案 0 :(得分:1)
如今,许多Web主机在其管理面板中提供了用于子域创建的简便实现。您只需要去那里,选择您的子域名,然后将其指向树中的目录即可。
如果不能这样做,那将更加复杂(您将需要将该子域解析为服务器ip,配置一些虚拟主机...等),并且您可能没有足够的权限来做到这一点(除非您在专用服务器上)。
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]
RedirectMatch 301 ^/subfolder/(.*)$ http://subdomain.example.com/$1
喜欢
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteRule ^sub1/(.*)$ http://sub1.example.com/$1 [L,QSA,R=301]
RewriteCond %{HTTP_HOST} ^sub1\.example\.com$
RewriteCond %{REQUEST_URI} !^sub1/
RewriteRule ^(.*)$ /sub1/$1 [L,QSA]
如果要进一步理解,请遵循https://beginnersbook.com/2013/08/redirecting-from-subdirectory-to-subdomain-using-htaccess/