.htaccess 重写规则子域
我的URL看起来像这样.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
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]