Çoklu Dosyaları için htaccess 301 Yönlendirme

3 Cevap php

Htaccess üzerinde birden fazla giriş 301 yönlendirmeleri için çalışacak merak ediyorum.

Gördüğüm sorun eski site dosyalarını 'html' uzantısına sahip ve bu yüzden basit bir global yönlendirme dosya adında başına bir kural olmalı, işe yaramaz farklı adlandırılmış adlandırılır olmasıdır.

Bu siteler çok arama motoru cezalandırmak için dikkatli olmak gerekir günlük 1000 ziyaret alır.

RewriteEngine On
RewriteBase /
RewriteRule ^file1\.html$ http://www.domain.com/file1.php [R=301,NC,L]
RewriteRule ^file2\.html$ http://www.domain.com/file2.php [R=301,NC,L]
RewriteRule ^file3\.html$ http://www.domain.com/file3.php [R=301,NC,L]
RewriteRule ^file4\.html$ http://www.domain.com/file4.php [R=301,NC,L]

Eski dosyalar html tip olarak bir php başlık yeniden yazma çalışmaz.

3 Cevap

Ben bu hepsi aynı şekilde arıyor gibi, kullandığınız farklı RewriteRules sayısını azaltmak için bazı regex kullanabilirsiniz varsayalım.

Senin durumunda, sadece bu birini kullanarak Tamam olabilir:

RewriteRule ^(file1|file2|file3|file4)\.html$ http://www.metaboforte.com/$1.php [R=301,NC,L]

Bu şekilde, size yeniden yazmak istiyorum tam olarak ne belirtin; ama yalnızca 1 RewriteRule sahiptir.

Ya da biraz daha genel:

RewriteRule ^file([0-9]*)\.html$ http://www.metaboforte.com/file$1.php [R=301,NC,L]

Hangi XYZ her fileXYZ.html, bir dizi yeniden yazmak istediğiniz tanımlamanızı sağlar. (Ben kullanıldığı gibi '*', hiç sayı bu yeniden yazma kuralı tarafından dikkate alınacağını, en az bir sayı istiyorsanız, '+' kullanmalısınız)

Ayrıca daha genel bir şey yapmak olabilir - böyle bir şey yapabilir ki, ama istediğinizden emin değil:

RewriteRule ^(.*?)\.html$ http://www.metaboforte.com/$1.php [R=301,NC,L]

Burada, sizinle sonuna şeyi yönlendiriyorsunuz. Html

Neden sadece ...

RewriteRule ^file([0-9]+)\.html$ http://www.metaboforte.com/file$1.php [R=301,NC,L]

Veya, eski sitede everything yeniden yazmak istiyorsanız ...

RewriteRule ^(.*?)\.html$ http://www.metaboforte.com/$1.php [R=301,NC,L]

Belki RewriteMap Directive deneyebilirsiniz