簡體   English   中英

.htaccess HTTPS重定向而不更改url

[英].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>

資料來源: https : //wiki.apache.org/httpd/RedirectSSL

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.comm.domain.com重定向到/mobile.php/nb/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM