在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重定向规则。