. Php htaccess yeniden yazma kuralı. Aspx

2 Cevap php

Arka plan: ASP.NET 2.0 ile inşa edilmiş ve Windows hosting üzerinde olan bir web sitesi var. Şimdi PHP sitemde yeniden yazmak ve Linux hosting içine taşımak zorunda. Ben eski. Aspx sayfaları doğrudan işaret web etrafında siteme gelen bağlantıların çok şey var. Sitenin kendisi, bir dinamik sayfa ve beş statik olanlar çok basittir.

Ben. Php sayfaları gibi statik. Aspx sayfaları kaydedilir ve PHP dinamik sayfa yazdım. Dinamik sayfa City.aspx denir ve ben PHP bunu yazdım ve şimdi City.php denir.

Benim eski Windows hosting, ben dostu URL için ASP.NET 'in URL eşleme kullanılır. Örneğin, Laajakaista / Ypaja.aspx için gelen URL isteği City.aspx içine çizilmiştir? CityID = 981.

My goal: To redirect all human visitors and search engines looking for the old .aspx pages into the new .php pages.

Ben yeni sayfalar ziyaretçileri yönlendirmek için en kolay yolu. Aspx dosyaları için tüm istekleri. Php filetypes içine yönlendirilecek bir yönlendirme, yaparak olacağını düşünüyorum.

Birisi sorar Yani, mysite / City.aspx? CityID = 5, bunlar yerine MySite / City.php? CityID = 5 alınacaktır.

Ancak, ben bu işe almanın bir sürü sorun yaşıyorum.

Şimdiye kadar bu bulduk budur:

rewriterule ^([.]+)\.aspx$ http://www.example.com/$1.php [R=301,L] 

Ancak, ben bu filetype sonra parametrelerini işleyemez düşünüyorum ve ben de önüne koymak oldukça emin değilim.

Ben böyle dönüşümler ile büyük bir eşleme dosyası vardı ki işler biraz daha karmaşık hale getirmek için, benim önceki yerinde ben dostu URL kullanılır:

    <add url="~/Laajakaista/Ypaja.aspx" mappedUrl="~/City.aspx?CityID=981" />
    <add url="~/Laajakaista/Aetsa.aspx" mappedUrl="~/City.aspx?CityID=988" />
    <add url="~/Laajakaista/Ahtari.aspx" mappedUrl="~/City.aspx?CityID=989" />
    <add url="~/Laajakaista/Aanekoski.aspx" mappedUrl="~/City.aspx?CityID=992" />

Ben bu gibi basit bir yönlendirme yapmaya çalıştı:

Redirect 301 Laajakaista/Aanekoski.aspx City.php?CityID=992

ama işe almak mümkün değildi. Ben bir iç sunucu hatası ve bir 50k. Htaccess dosyası ile sona erdi ...

Herhangi bir yardım büyük beğeni topluyor.

2 Cevap

Eğer gerçekten htaccess dosyasında CityName / ID çeviri yapmak istiyorsun?

Zamanki gibi Laajakaista/*.aspx maç ve (daha sonra bir kimliği içine çeviri yapacağını) PHP komut dosyası için bir parametre olarak yer adı geçmek olacaktır. Daha iyi bir fikir olmaz mıydı?

Bu bir seçenek ise, böyle bir şey yapardı:

rewriterule ^Laajakaista/([.]+)\.aspx$ city.php?cityname=$1 [QSA]
rewriterule ^([.]+)\.aspx$ $1.php?%{QUERY_STRING} [R=301,QSA]

Bir 301 ile veya olmadan bunu yapabilir - 301 tarayıcıda görünür URL'yi değişecektir.

Bu o kadar, bayraklar QSA eklemeyi deneyin [R=301,L,QSA]. Bu "Sorgu dize Append" anlamına gelir ve yeni bir URL'ye eski URL'den sorgu dizesi her ekleyecektir. Bu dosya sonrasında parametrelerin sorununuzu çözecektir.

RewriteRule ^(.*)\.aspx$ http://www.example.com/$1.php [R=301,L,QSA]

Diğer eşleştirmeleri gelince, sizin yöntemi yeniden düşünmek isteyebilirsiniz. Her şehir için bir eşleme olması dağınık görünüyor. Muhtemelen city.php dosyaya bir parametre olarak şehir adı geçmesi ve adından kimliği dönüştüğünde bu olmalı. Sonra sadece bir RewriteRule. Htaccess dosyasında giriş yerine her şehir için bir yönlendirme var. Örneğin,

RewriteRule ^Laajakaista/(.*)\.aspx$ city.php?cityname=$1 [L]