2012-03-18 60 views

回答

0

處理它由於涉及重定向的數量,最好的答案是使用每種可能性的特定規則手動重定向每個URL。不幸的是,所提供的答案中沒有提供幫助

0

您可以使用一個簡單的重寫條件實現這一點,在你的.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。

+0

我需要http://www.mywebsite.com/home/?page_id=273&mnth=8&yr=1993打開http://www.mywebsite.com/ - 所以這不起作用遺憾 – Tisch 2012-03-18 19:50:08

+0

您必須指定你想在地址欄上看到什麼網址**可見**,以及你想在服務器上執行哪些文件/參數 – aurbano 2012-03-18 19:52:10

+0

我需要清理一大堆搜索引擎結果並將它們全部重定向到主頁,所以我無法控制或指定URL中的內容。 – Tisch 2012-03-18 20:10:15

1

我認爲RedirectMatch只適用於Url路徑 - 即不是查詢字符串。

,但可以使用mod_rewrite

RewriteEngine on 
RewriteCond %{QUERY_STRING} page_id=273 
RewriteRule home/.* /path/to/new.html [L,R] 
1

你也可以重定向任何不存在的頁面的主頁,讓您的應用程序從那裏

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule>