我想重定向https://mineyourmind.de/forum到https://mineyourmind.net/forum。
我在 Google 上搜索到的所有重写规则都不起作用,他们还重定向了主域名(mineyourmind.de)。
我正在通过 apache siteconfig 重定向 http:// www. 和 http:// 和 https://。
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 中包含首字母。