我想用htaccess的做後續重定向:重定向URL與某個參數以
來源:http://www.mywebsite.com/home/?page_id=273&mnth=8&yr=1993
然而,所有參數的變化與page_id相差甚遠,所以如果可以重定向所有這些頁面而不必爲每個可能性做一個,那將是理想的。
預先感謝接受任何幫助,
我想用htaccess的做後續重定向:重定向URL與某個參數以
來源:http://www.mywebsite.com/home/?page_id=273&mnth=8&yr=1993
然而,所有參數的變化與page_id相差甚遠,所以如果可以重定向所有這些頁面而不必爲每個可能性做一個,那將是理想的。
預先感謝接受任何幫助,
處理它由於涉及重定向的數量,最好的答案是使用每種可能性的特定規則手動重定向每個URL。不幸的是,所提供的答案中沒有提供幫助
您可以使用一個簡單的重寫條件實現這一點,在你的.htaccess ,添加:
Options +SymLinksIfOwnerMatch
RewriteEngine On
# These are the rewrite conditions
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# And finally, the rewrite rules
RewriteRule ^home/273/([0-9]+)/([0-9]+)/?$ /home/?page_id=273&mnth=$1&yr=$2 [L,NC,QSA]
這樣,您將使用新的URL爲:http://www.mywebsite.com/home/273/8/1993
,它會打開http://www.mywebsite.com/?page_id=273&mnth=8&yr=1993
。
您當然也可以動態設置273。
我認爲RedirectMatch只適用於Url路徑 - 即不是查詢字符串。
,但可以使用mod_rewrite
RewriteEngine on
RewriteCond %{QUERY_STRING} page_id=273
RewriteRule home/.* /path/to/new.html [L,R]
你也可以重定向任何不存在的頁面的主頁,讓您的應用程序從那裏
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
我需要http://www.mywebsite.com/home/?page_id=273&mnth=8&yr=1993打開http://www.mywebsite.com/ - 所以這不起作用遺憾 – Tisch 2012-03-18 19:50:08
您必須指定你想在地址欄上看到什麼網址**可見**,以及你想在服務器上執行哪些文件/參數 – aurbano 2012-03-18 19:52:10
我需要清理一大堆搜索引擎結果並將它們全部重定向到主頁,所以我無法控制或指定URL中的內容。 – Tisch 2012-03-18 20:10:15