在Apache2中,重定向规则通常使用.htaccess文件或直接在虚拟主机配置文件中编写。以下是一些常见的重定向规则示例:
将所有访问http://example.com的请求重定向到https://example.com:
<VirtualHost *:80>
ServerName example.com
Redirect permanent / http://example.com/
</VirtualHost>
将所有访问http://example.com/oldpage的请求重定向到http://example.com/newpage:
<VirtualHost *:80>
ServerName example.com
Redirect 301 /oldpage http://example.com/newpage
</VirtualHost>
将所有访问http://example.com/olddirectory的请求重定向到http://example.com/newdirectory:
<VirtualHost *:80>
ServerName example.com
RedirectMatch 301 ^/olddirectory/(.*)$ http://example.com/newdirectory/$1
</VirtualHost>
将所有访问sub.example.com的请求重定向到http://example.com:
<VirtualHost *:80>
ServerName sub.example.com
Redirect permanent / http://example.com/
</VirtualHost>
mod_rewrite进行复杂重定向使用mod_rewrite模块可以进行更复杂的重定向规则。例如,将所有访问http://example.com/page的请求重定向到http://example.com/newpage,但排除http://example.com/newpage本身:
<VirtualHost *:80>
ServerName example.com
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/newpage$
RewriteRule ^page$ http://example.com/newpage [R=301,L]
</VirtualHost>
将所有访问http://example.com的请求重定向到https://anotherdomain.com:
<VirtualHost *:80>
ServerName example.com
Redirect permanent / https://anotherdomain.com/
</VirtualHost>
.htaccess文件有适当的权限,通常需要AllowOverride All。通过这些示例,你可以根据需要编写适合自己网站的Apache2重定向规则。