2016-03-24 16 views
1

Ana sayfam olarak kullandığım bir Jekyll üretilmiş statik HTML sayfam var. Şu anda onu AWS S3'teki geleneksel barındırma hizmetinden geçirmeye çalışıyorum. Şimdiye kadar tüm dosyalarımı klavyede yayınlamayı başardım ve web sitesi barındırma özelliğini etkinleştirdim, ancak tarama söz konusu olduğunda sayfa bozuk.AWS S3 yönlendirme kuralları .html veya index.html için kurallar

Temelde subpages/subpages/index.html içine yeniden yazılmış değildir ve subpages/entry1subpages/entry1.html içine yeniden yazılmış değil.

Daha önce bunun gibi .htaccess yapılandırma kullandı: amaçlandığı gibi

Options +FollowSymlinks 
RewriteEngine On 
RewriteRule ^(.*subpages/[^.]+)/?$ $1.html 
RewriteRule ^(.*subpages2/[^.]+)/?$ $1.html 

o yeniden yazmak için.

Bu davranış S3 yönlendirme kuralları ile nasıl yeniden oluşturulabilir? Documentation, bu bağlamda oldukça sınırlı yapılandırma seçenekleri sunar ve böyle bir senaryonun nasıl başarılabileceğine dair örnekler vermez.

cevap

4

Amazon S3, kapsamlı yeniden yazma yeteneklerine sahip değil.

Bir dizin referansı belirtildiğinde okunacak varsayılan bir belgeyi belirtebilirsiniz. Örneğin, varsayılan belgenin index.html olduğunu belirtebilirsiniz. Bu şekilde, / istenirse, /index.html hizmet edecektir. Ancak bu, bir kovalama ayarıdır, bu nedenle farklı klasörler için farklı kurallara sahip olamazsınız.

subpages/entry1.html'dan subpages/entry1/index.html oluşturmak için Jekyll yapılandırmanızı değiştirebilirsiniz. Bu şekilde, URL’leriniz çalışmaya devam edecektir.

3

Referansı, ilk önce alt sayfalara/entry1.html sahip olacak şekilde düzeltmeniz gerekir. Daha yeni bir yeniden yazmaya ihtiyacınız yok.

+0

Şahsen, bu çözümü tüm varsayılan ayarları değiştirmeye ve varolan URL'leri kırmaya zorladığından aşağıdan buluyorum. Ama eğer başka bir şekilde yapılamazsa ... –

+4

Tam olarak ne için? S3, .html uzantılarını rastgele yollara eklemeyi desteklemez, bu nedenle S3 ile bu URL'leri kullanamazsınız. S3'ün önceki barındırma çözümünüzden daha düşük olduğunu düşünüyorsanız, daha sonra, önceki barındırma çözümünüzü kullanmaya devam edin. –

+2

Apache, python -m SimpleHTTPServer 9000 veya "jekyll serve" ile karşılaştırıldığında, yer işareti dostu URL'leri sunma açısından düşük. Ödenen hizmetin projemize uyacak şekilde yapılandırılabilir olmasını bekledim, başka bir şekilde değil. –