[英].htaccess HTTPS redirect without changing url
我有一个主域mydomain.com和一个子域m.mydomain.com , 两者均受SSL保护。
当我访问子域m.mydomain.com时,我希望在mydomain.com/mobile.php/nb上进行重定向,而无需更改网址...因此,该网址必须保留为m.mydomain.com
这是我的想法:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^m\.mydomain\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.m\.mydomain\.com$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteRule ^(.*)$ "https\:\/\/mydomain\.com\/mobile\.php\/nb$1" [R=301,L]
它会正确地重定向我,但不会保留子域的网址。
我发现的所有解决方案仅在站点不安全(http)的情况下才有效。
它可以但不应通过.htaccess文件完成。
这通常是在您的vhost配置文件中完成的
<VirtualHost *:80>
ServerName www.example.com
Redirect / https://secure.example.com/
</VirtualHost>
<VirtualHost _default_:443>
ServerName secure.example.com
DocumentRoot /usr/local/apache2/htdocs
SSLEngine On
# etc...
</VirtualHost>
mod-rewrite R
标志执行url从旧位置到新位置的外部重定向。 如果您不想重定向子域,请从RewriteRule中删除R=301
标志,并使用绝对路径而不是完整URL作为重写目标。
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?m\.mydomain\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[ 0- 9a -zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0- 9]{ 32 }\.txt(?:\Comodo\DCV)?$
RewriteRule ^(.*)$ /mobile.php/nb/$1 [L]
这将在内部将www.m.domain.com
或m.domain.com
重定向到/mobile.php/nb/
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.