.htaccess 重写规则子域

.htaccess 重写规则子域,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,我的URL看起来像这样 mydomain.tld/abc de.mydomain.tld/abc (可选,后面有斜线) 现在我想用子域重写所有url,从: de.mydomain.tld/abc (or de.mydomain.tld/abc/) 致: 所有其他URL都应该转到我的ghost博客(第5行)。这部分已经工作了 my.htaccess 1 RewriteEngine On 2 #Rewrite my Subdomain to .html 3 RewriteCon

我的URL看起来像这样

mydomain.tld/abc
de.mydomain.tld/abc
(可选,后面有斜线)

现在我想用子域重写所有url,从:

de.mydomain.tld/abc (or de.mydomain.tld/abc/)
致:

所有其他URL都应该转到我的ghost博客(第5行)。这部分已经工作了

my.htaccess

 1   RewriteEngine On
 2   #Rewrite my Subdomain to .html
 3   RewriteCond %{HTTP_HOST} ^de\.mydomain\.tld$ 
 4   RewriteRule ^(.*)/?$ $1\.html [L] 

 5   RewriteRule ^(.*) http://localhost:61222/$1 [P]
 6   RewriteRule ^(.*)/$ $1 [R=301]
到目前为止,我认为它是这样的:

1(第3行)。如果url中有子域路径,请执行以下规则

2(第4行)将斜杠(如果有)之前的部分重写为与附加的.html完全相同,之后不再使用更多规则

问题一: 如何调整第3行和第4行,使只有包含de.子域的路径更改为.html,如上面htaccess所述

问题二: 以下部分是否将所有www.子域重定向到原始域: ->


如果它这样做了,我是否需要向上移动它,因为我在第一条规则中有[L]?如果它什么也不做,正确的重写规则是什么?

很抱歉,您的问题不清楚。你面临什么问题?你所说的
www->http://
是什么意思。我希望现在更清楚了。您的
RewriteCond%{HTTP\u HOST}^de\.mydomain\.tld$
已在执行此操作。2.在这些规则中我看不到
www
删除。我不明白你为什么在那里有
P
标志。第5行可以。P代表代理,我想这是因为鬼魂。在本教程中,第一个块不工作。我发现了这一点:所以我已经犯了一个错误,我试图逃避这个错误。在html之前。正确地说,它必须是:RewriteRule^(.*)/?$$1.html[L],但仍然没有删除斜杠,如果原始url中有斜杠(例如-->),那么重写条件也没有检测到子域,我想这可能是因为它计算根域之后的部分?
 1   RewriteEngine On
 2   #Rewrite my Subdomain to .html
 3   RewriteCond %{HTTP_HOST} ^de\.mydomain\.tld$ 
 4   RewriteRule ^(.*)/?$ $1\.html [L] 

 5   RewriteRule ^(.*) http://localhost:61222/$1 [P]
 6   RewriteRule ^(.*)/$ $1 [R=301]
RewriteRule ^(.*)/$ $1 [R=301]