簡體   English   中英

將example.com重定向到example.com/blog

[英]Redirect example.com to example.com/blog

我已經將網站上傳到服務器上的子目錄下,結構看起來像這樣

- - 博客

--------。htaccess

- - 蘋果

----。htaccess

現在,我在/blog/.htaccess文件中編寫了一條規則,該規則會將用戶重定向到

https://www.example.com/blog/

我通過添加以下規則來做到這一點。

RewriteEngine On
RewriteBase /blog/

RewriteCond %{HTTP_HOST} !^www\. [NC,OR]
RewriteCond %{HTTPS} !on
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC]
RewriteRule ^ https://www.%1%{REQUEST_URI} [R=301,L,NE]

到目前為止,它的工作原理完全符合需求,現在真正的問題來了。 用戶希望任何人在沒有前一個博客的情況下訪問該域時,都會添加/ blog /並將用戶重定向到該博客站點,並且該規則在以下情況下不應影響任何子域的含義:

用戶輸入網址。

example.com

他應該被重定向到。

https://www.example.com/blog/

當他輸入網址時。

apple.example.com

他應該重定向到

apple.example.com

現在,為了執行此操作,我正在編寫以下規則,但是該規則不起作用,如下所示。

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

我不知道我在做什么錯。

我添加了太多詳細信息,因為我認為博客目錄中的.htaccess文件可能會引起問題。

嘗試這個:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com 
RewriteRule ^(.*)$ http://www.example.com/blog/$1 [L,R=301,NC]

讓我知道它是否有效。

在@Twinkle的幫助下找到了問題,真正的問題是我正在添加

RewriteRule ^$ /blog/ [L]

由於明顯的原因,我不需要刪除該規則並將當前規則更改為以下規則,從而解決了我的問題。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^example\.com$
RewriteRule (.*) https://example.com/blog/ [R=301,L]

RewriteCond %{HTTP_HOST} ^www.example\.com$
RewriteRule (.*) https://example.com/blog/ [R=301,L]

希望有人能找到全部幫助。

暫無
暫無

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

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