2015-07-17 4 views
0

Я видел несколько вопросов, похожих и пробовал все решения, но в порядке убывания. Мне нужно перенаправитьпереписать asp на php на основе запроса asp

example.com/products.asp?lob=health 

в

example.com/services/healthcare/ 

мне нужно сделать это для несколько мяча = разных значений. Есть ли способ перенаправить каждый URL-адрес. Возможно, какое-то условие перезаписи на lob, но если значение lob = health, переадресуйте здесь. Если он равен дому, перенаправляйте куда-нибудь еще?

+0

Вы работаете в IIS, и если да, то какая версия? – pee2pee

ответ

0

Не уверен, что это «правильный» способ сделать это, но он работает.

RewriteCond %{QUERY_STRING} ^lob=value1$ [NC] 
RewriteRule ^products.asp$ http://example.org/sample/one/? [R=301,L] 

А потом другое значение:

RewriteCond %{QUERY_STRING} ^lob=value2$ [NC] 
RewriteRule ^products.asp$ http://example.org/sample/two/? [R=301,L] 

И тогда за все, что не соответствует значение:

RewriteRule ^products\.asp$ [insert new url here] [R=301,L] 

Последний пример также работает, если вы просто хотите перенаправить URL-адрес .asp к .php. Имейте в виду, что у меня есть другие условия и правила, удаляем расширение .php и добавлении/ко всем файлам:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/$ $1.php 
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$ 
RewriteRule (.*)$ /$1/ [R=301,L] 
0

Если просто смотреть на значение строки запроса, а затем перенаправлять, попробуйте ...

Dim theVal, newURL 
    If Request("lob") <> "" Then 
     theValue = LCase(Request("lob")) 
    Else 
     theValue = "none" 
    End If 

    Select Case theValue 
     Case "health" 
     newURL = "example.com/services/healthcare/" 
     Case "law" 
     newURL = "example.com/services/legal/" 
     Case Else 
     newURL = "example.com/services/listing/" 
    End Select 

    Response.Redirect newURL 

Надеюсь, это поможет.

+0

Спасибо за ответ. Мое решение выше работает в моем файле .htaccess. Я забыл упомянуть, что я переместил сервер из окон в Linux. Не уверен, что это имеет значение в вашем ответе. Ваш ответ идет в голову? –

+0

Мой ответ будет размещен в верхней части страницы ASP-получателя. – CLaFarge