【问题标题】:Subdomain with subfolder gets a 404 error带有子文件夹的子域收到 404 错误
【发布时间】:2013-10-22 11:45:04
【问题描述】:
我有多个使用重定向的子域,但对 SEO 不利
RewriteRule ^([a-zA-Z0-9&:_-]+)/actions$ http://$1.actions.mydomain.nl [R=301,L]
我想重定向到:
http://$1.mydomain.nl/actions
但在这里我得到一个 404 错误。
如何为此制定正确的规则?
【问题讨论】:
标签:
.htaccess
redirect
subdomain
【解决方案1】:
我假设您的规则如下所示:
RewriteRule ^([a-zA-Z0-9&:_-]+)/actions$ http://$1.mydomain.nl/actions [R=301,L]
所以目的地变成http://subdomain-name.mydomain.nl/actions。因此,您需要做的第一件事是确保 DNS 条目设置为将 subdomain-name.mydomain.nl 指向正确的 IP 地址/服务器。然后在实际服务器上,您需要确保将请求路由到正确的位置。所以假设实际资源是/subdomain-name/actions,你需要:
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.mydomain.nl$ [NC]
RewriteRule ^actions$ /%1/actions [L]
【解决方案2】:
这是我拥有的完整代码:
RewriteCond %{HTTP_HOST} !^www.
RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9&:_-]+).actions.mydomain.nl$ [NC]
RewriteRule ^$ file.php?seo_naam=%1 [L,QSA]
这是可行的,但多个(2 级)子域对 seo 来说不是一件好事。
RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9&:_-]+).actions.mydomain.nl$ [NC]
但我想将其更改为:
RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9&:_-]+).mydomain.nl\actions$ [NC]
没用
问题是 file.php?seo_naam=%1 应该被加载,否则它将无法工作。