Php url parametreleri varsa RewriteRule ile URL yönlendirme?

2 Cevap php

Ben geçici bir yeni bağlantı için eski bir bağlantı kullanıcıyı almak benim. Htaccess yeniden yazma kuralları kullanmaya çalışıyorum (kalıcı bir yeni bir site değil, o yüzden ben bir 301 yönlendirmesi istemiyorum)

Tüm html sayfaları ve aynı parametreler olmadan php sayfaları için çalışmalarını izleyen, ama bu son örnek işlemez - parametreleri ile bir php sayfası. Dizin yapısı, yeni etki alanı farklı olan, ancak url parametreleri tam olarak aynı olduğunu unutmayın. Ben RewriteRule sağlamak için düzenli ifadeler ile yapabileceğiniz bir şey var mı? Ben çok fazla deneyim benim kendi Tescil ifadeler yazma yok, bu yüzden ben nereden başlayacağınızı emin değilim. Teşekkürler!

. Benim htaccess dosyası:

AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
Options -MultiViews
Options +FollowSymlinks
RewriteEngine on
RewriteRule invest/index.html http://example.org/new_file_structure/invest/index.html
RewriteRule index-old.html http://example.org/index.php
RewriteRule invest/i2/ap/row_I2_i_ap1.php http://example.org/new_file_structure/i2/ap/row_I2_i_ap1.php

##The following doesn't work:
RewriteRule subpages/view.php?d=i1_014 http://example.org/2010/view.php?d=i1_014 

Thanks, Jen

2 Cevap

Sen sorgu dizesi tespit etmek için RewriteCond kullanmanız gerekir:

RewriteCond %{QUERY_STRING} d=(.+)

Sonra şeklinde bir RewriteCond geribaşvuru kullanmak gerekir %n,

RewriteRule subpages/view.php$ http://example.org/2010/view.php?d=%1

Herhangi GET parametreleri saklanır

%{QUERY_STRING}

Eğer yönlendirme URL eklemek gerekir.

RewriteRule subpages/view.php?d=i1_014 http://example.org/2010/view.php?d=i1_014&%{QUERY_STRING}

Eğer bir 301 istemiyorsanız Ama, neden tam bir URL işaret ediyor? Bence bu şekilde size enforce 301. Neden sadece kullanmak değil, /2010/view.php....?