Apache-2.2
使用正則表達式將一個或多個 URL 重定向到一個
在我的網站中,我有一些可以通過兩個 url 訪問的頁面:
- …/頁
- …/參數/頁面
為了優化搜尋引擎的網站,我必須將所有 …/page url 重定向到 …/parameter/page url。
我怎樣才能修改文件.htaccess?
為了使重定向以所需的行為執行,請實施類似於以下包含的重寫規則:
RewriteEngine On RewriteCond %{REQUEST_URI} !(/(special|cases|which|should|be|excluded)/) [NC] RewriteRule /(.*) http://www.example.com/parameter/$1 [L,R=301]
評論中提到的更具體問題的解決方案(即,重定向所有沒有特定上下文的頁面以使用“en”上下文)類似於以下重寫:
RewriteEngine On RewriteCond %{REQUEST_URI} !(/(en|it|de|fr)/) [NC] RewriteRule /(.*) http://www.example.com/en/$1 [L,R=301]
請注意,重寫規則不應適用的任何其他語言目錄都需要添加到 RewriteCond 中的轉義子句中。
此外,一旦這已經到位,需要在 Apache 上發出一個優雅的命令以獲取更改。