將目錄重新導向到新網域而不觸及主網站

將目錄重新導向到新網域而不觸及主網站

我想重定向https://mineyourmind.de/forumhttps://mineyourmind.net/forum

我可以穀歌搜尋到的每個重寫規則都不起作用,他們也重定向了主域(mineyourmind.de)。

我正在重定向 http:// www.以及 http:// 和 https:// 透過 apache siteconfig。

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.mineoyurmind\.de$ [NC]
RewriteRule (.*) https://mienoyurmind.de%{REQUEST_URI} [R=301,L]

論壇目錄的.htaccess如下圖所示:

ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
ErrorDocument 500 default

<IfModule mod_rewrite.c>
    RewriteEngine On

    #   If you are having problems with the rewrite rules, remove the "#" from the
    #   line that begins "RewriteBase" below. You will also have to change the path
    #   of the rewrite to reflect the path to your XenForo installation.
    #RewriteBase /xenforo

    #   This line may be needed to enable WebDAV editing with PHP as a CGI.
    #RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
    RewriteRule ^.*$ index.php [NC,L] 
</IfModule>

我是否應該將mineyourmind.de/forum 的重寫添加到mineyourmind.net/forum 的apache 網站配置或htaccess 中,這應該是什麼樣子?


編輯:

我嘗試過這樣的:

RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.mineyourmind\.de$ [NC]
RewriteRule (.*) https://mineyourmind.de%{REQUEST_URI} [R=301,L]
RewriteRule (/forum.*) https://mineyourmind.net/$1 [R=301,L]

像這樣

RewriteEngine On
RewriteRule (/forum.*) https://mineyourmind.net/$1 [R=301,L]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} ^www\.mineyourmind\.de$ [NC]
RewriteRule (.*) https://mineyourmind.de%{REQUEST_URI} [R=301,L]

兩者都不起作用

答案1

這是重定向每個以“/forum”開頭的請求的規則。

RewriteRule (/forum.*) https://mineyourmind.net/$1 [R=301,L]

這表示「當 URI 以「/forum」開頭時,您應該捕獲整個 URI,然後將主機名稱替換為mineyourmind.de。這$1表示「您剛剛匹配的內容」。

編輯:

為了確保您不會重定向任何名稱中以“forum”開頭的文件,您可能需要兩個規則。

# To match /forum only:
RewriteRule ^/forum$ https://mineyourmind.net/$1 [R=301,L] 
# To match any URI under the /forum directory, e.g. "/forum/" and "/forum/someotherfile.html"
RewriteRule ^/forum/(.*) https://mineyourmind.net/forum/$1 [R=301,L]

編輯結束

您是否應該在 .htaccess 或 apache 網站配置中執行此操作在一定程度上取決於您的系統設定方式,也就是您儲存其他網站特定文件的位置。一般來說,使用 .htaccess 時會產生輕微的開銷,因為 apache 將為每個新請求重新讀取 .htaccess 文件,而網站配置僅在伺服器重新啟動時才會讀取。但作為一項規則,我會盡可能將所有重寫配置放在同一個文件中,以使其更易於管理。無論是 .htacces、virtualhost.conf 或 httpd.conf,都取決於您。

你也應該閱讀重寫規則文檔,它解釋了在什麼情況下您需要/在 RewriteRule 中包含首字母。

相關內容