Apache-2.2
將目錄重定向到新域而不觸及主網站
我想將https://mineyourmind.de/forum>重定向到<https://mineyourmind.net/forum。
我可以用Google搜尋的每條重寫規則都不起作用,他們還重定向了主域(mineyourmind.de)。
我重定向 http://www。和 http:// 和 https:// 通過 apache 站點配置。
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]
兩者都不起作用
這是重定向以“/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 文件,其中解釋了在什麼情況下您需要
/
在 RewriteRule 中包含首字母。