簡體   English   中英

如何重定向到特定的URL

[英]How to redirect to particular URL

如果用戶打開,我想重定向

1從http://example.comhttps://www.example.com

2從http://www.example.comhttps://www.example.com

3 http://example.com/user/(anystring)https://www.example.com/user/(anystring)

4 http://www.example.com/user/(anystring)https://www.example.com/user/(anystring)

我試過這個htaccess

RewriteCond %{HTTP_HOST} ^example\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule ^/?$ "https\:\/\/www\.example\.com\/" [R=301,L]

RewriteCond %{HTTP_HOST} ^example\.com\/user\/*$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.example\.com\/user\/*$
RewriteRule ^/?$ "https\:\/\/www\.example\.com\/user\/$1" [R=301,L]

3rd和4th不能正常工作, (anystring)不可訪問,我將設置COOKIE ,但重定向后將不可用。

我認為您可以將其簡化為一條規則:

RewriteEngine on
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^(www\.)?example\.com$
RewriteRule ^/?(.*)$ https://www.example.com/$1 [R=301,L,QSA]

實際上,僅當您在希望重寫的同一規則集中有其他虛擬主機時,才需要對主機名進行測試。


還有一個一般提示:您應該始終喜歡將此類規則放在http服務器主機配置中,而不是使用.htaccess樣式文件。 眾所周知,這些文件容易出錯,難以調試,並且確實降低了服務器的速度。 僅當您無法控制主機配置(閱讀:真正便宜的托管服務提供商)或者您的應用程序依賴於編寫自己的重寫規則(這顯然是安全噩夢)時,才提供它們作為最后的選擇。 )。

暫無
暫無

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

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