我有一个example.com,我在Cpanel中为它创建了一个子域。在Cpanel中,它出现了:
test.domain.com / public_html / test not reirected 我想访问我的新子域:test.domain.com我在子域文件夹中创建了一个index.html:/ home / domainname / public_html / test
我的.htaccess是:
AddType text/x-component .htc
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://example.com/$1 [L,R=301]
RedirectMatch 301 ^/test/(.*)$ http://test.example.com/$1
RewriteRule ^(en|fr)/([a-z]*) /index.php
RewriteRule !\.
(js|ico|gif|jpg|jpeg|png|css|swf|htm|xml|php|map|ttf|woff|woff2)$
index.php
RewriteRule ^(form|ajax|captcha)/([a-z]*) /index.php
domain.com有ssl和subdomain我不知道。我在.htaccess中为子域添加了这一行:
RedirectMatch 301 ^/test/(.*)$ http://test.example.com/$1
但无法正常工作:访问test.example.com时,我得到&#34;此页面无法正常工作test.example.com重定向了你太多次了。&#34; < / p>
如果使用https:
RedirectMatch 301 ^/test/(.*)$ https://test.example.com/$1
我当然会收到警告并且未找到 在此服务器上找不到请求的URL /home/domainname/public_html/index.php。
我做错了什么?
答案 0 :(得分:3)
您应该添加RewriteBase
指令:
RewriteEngine on
RewriteBase /
您还应该将RedirectMatch
指令更新为:
RewriteCond %{HTTP_HOST} ^example\.com [NC]
RewriteRule ^test/(.*)$ http://test.example.com/$1 [R=301,L]
它会测试请求域是否为example.com
,如果请求URI前缀为test/{any_characters}
,则会永久重定向到test.example.com/{any_characters}
。