Apache Rewrite 是一個強大的工具,用于根據特定條件重寫 URL。要實現(xiàn)條件判斷,你可以使用 RewriteCond 指令。以下是一些示例,說明如何使用 RewriteCond 實現(xiàn)條件判斷。
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/example/(.*)$
RewriteRule ^example/(.*)$ /new-example/$1 [R=301,L]
在這個例子中,如果請求的 URI 以 /example/
開頭,它將被重寫到 /new-example/
。
RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain\.com$
RewriteRule ^(.*)$ http://www.newdomain.com/$1 [R=301,L]
這里,如果請求的主機名是 olddomain.com
,URL 將被重寫到 www.newdomain.com
。
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/5\.0 (compatible; MSIE 9\.0; Windows NT 6\.1; Trident/5\.0)$
RewriteRule ^old-page$ /new-page [R=301,L]
在這個例子中,如果客戶端使用的是 Internet Explorer 9 瀏覽器,訪問 /old-page
的請求將被重寫到 /new-page
。
你可以根據需要組合這些條件,使用邏輯運算符(如 &&
和 ||
)來實現(xiàn)更復雜的條件判斷。例如:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^olddomain\.com$ && %{HTTP_USER_AGENT} ^Mozilla/5\.0 (compatible; MSIE 9\.0; Windows NT 6\.1; Trident/5\.0)$
RewriteRule ^old-page$ /new-page [R=301,L]
這個例子表示,只有當請求的主機名是 olddomain.com
且客戶端使用的是 Internet Explorer 9 瀏覽器時,訪問 /old-page
的請求才會被重寫到 /new-page
。