2013-04-24 73 views
2

我必須將所有我的asp頁面重定向到PHP開發的新網站。htaccess從asp重定向到php的參數

我有我的ASP頁面,
abc.asp?id=82

需要被重定向到
siteurl/index.php/abc

任何一個可以幫助我在.htaccess中?

我有試過,
Redirect 301 /abc.asp?id=82 siteurl/index.php/abc

rewriterule ^/abc.asp?id=82$ siteurl/index.php/abc[R=301,L]

但這不是工作,並給了我一個404錯誤。

+0

在你的重寫規則中有'abc.asp',而根據你的例子你想重定向'content.asp'? – Rikesh 2013-04-24 09:48:21

+0

是否要將content.asp頁面重定向到新的站點url? – Rikesh 2013-04-24 09:50:25

+0

這是我的錯誤。我不需要content.asp頁面,我需要重定向。需要的頁面是abc.asp?id = 82 – 2013-04-24 09:55:29

回答

2

無法與RedirectRewriteRule中的查詢字符串進行匹配。目前還不清楚你想在這裏完成的範圍。 id=82重要嗎? abc的意思是「任何只是字母」?是siteurl的目錄或域名?如果是嚴格的,你嘗試過什麼,那麼這是如何嚴格,它會工作:

RewriteEngine On 
RewriteCond %{QUERY_STRING} ^id=82($|&) 
RewriteRule ^/?abc.asp$ siteurl/index.php/abc? [L,R=301] 
+0

是的,我們必須嚴格遵循這個,因爲我們的舊網站是在asp中,我們不想將我們的用戶發送到「找不到頁面」頁面。 – 2013-04-24 10:10:32

+0

以上爲我工作,但它附加querysting,因爲它在RewriteCond%{QUERY_STRING}^id = 82($ |&)中給出。這是否有任何其他方式? – 2013-04-24 10:12:18

+0

@ArpiPatel對不起,在規則 – 2013-04-24 10:13:10

1

你讓2個主要錯誤:

  1. 重寫規則只URI部分匹配和不匹配的查詢字符串在.htaccess
  2. 重寫規則不匹配導致的斜線。

啓用mod_rewrite的,並通過httpd.conf的.htaccess,然後把這個代碼在你.htaccessDOCUMENT_ROOT目錄:

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{QUERY_STRING} ^id=82(&|$) [NC] 
RewriteRule ^(abc)\.asp$ http://domain.com/index.php/$1 [R=302,L,NC] 

一旦你確認它是工作與301(永久重定向代替302(臨時重定向) )

0

只需使用

RewriteRule ^abc.asp$ siteurl/index.php/abc [R=301,QSA,L] 

這應該做的工作..使用QSA標誌將轉發任何​​GET如果這就是你對標題的意思。