1

我有一個動態頁面,我需要重定向到.htaccess中的另一個動態頁面。使用301 .htaccess重定向到另一個php頁面.htaccess

我已經嘗試了不同的語法重定向,但似乎沒有任何工作:

RewriteEngine on 
RewriteRule /index.php?p=page&page_id=store$ http://www.website.com/index.php [R=301] 

OR

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^p=page&page_id=store$ 
RewriteRule ^/index.php$ http://www.website.com/index.php? [L,R=301] 

編輯:我在使用購物車的老PHP頁面,我已經轉移到新的地址。所以爲了保持搜索引擎頁面排名,我想將舊頁面重定向到新地址。我希望訪問者仍然訪問www.website.com/index.php?p=page & page_id =商店被重定向到website.com/index.php

在此先感謝!

+0

什麼不工作?你想追加查詢字符串到重寫的url嗎? –

+0

你能否用文字說出你想重定向的(完整)網址是什麼,在哪裏可以和你寫的規則進行比較? – xception

+0

哦,剛剛意識到與我的一個規則相比,你不需要/只用'RewriteRule^index.php $ http://www.website.com/index.php? [L,R = 301]',受這個規則的啓發'RewriteRule ^。* $ /index.php [NC,L]' – xception

回答

0

提供給htaccess文件中的重寫規則的URI總是會剝去前導斜線。因此,代替/index.php,您有index.php,因爲htaccess文件基本上是按目錄的情況,類似於<Directory>指令。所以你想第二個選項,但沒有前導斜槓:

RewriteEngine on 
RewriteCond %{QUERY_STRING} ^p=page&page_id=store$ 
# no slash --v 
RewriteRule ^index.php$ http://www.website.com/index.php? [L,R=301] 
+0

謝謝Jon。但是那也行不通。我在Pinnacle Cart上運行頁面,所以我想知道它是否與系統的具體內容有關。 – Lenz

+0

@Lenz我對你正在使用的系統一無所知,但如果你想將'/index.php?p=page&page_id= store'重定向到'/ index.php',那麼這就是你要使用的規則。如果在重定向之後,它仍然不工作,顯然重定向不是問題。這可能[這裏是一個XY問題](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)? –

+0

喬恩,不是真的。這就是我真正需要做的,將一個頁面重定向到另一個頁面。也許你可以建議更有效的方式來做到這一點,而不使用.htaccess重定向? – Lenz