在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重定向規則。