Soru Apache Web Sunucusu için Vanity URL yöneticisi


Apache (veya IHS - IBM HTTP Sunucusu) üzerinde çalışan tek bir alan için vanity URL'lerini yöneten bir araç arıyorum.

Vanity URL ile ne demek istedim:

  • www.mycompany.com/ProjectA  olur yönlendirmek servera.mycompany.com/whatever
  • www.mycompany.com/ProjectB  olur yönlendirmek serverb.mycompany.com/another/directory
  • www.mycompany.com/FallCampaign olur yönlendirmek servera.mycompany.com/whatever/offer.html
  • vesaire vesaire

Uygulanan mevcut çözüm, kullanıcıyı yönlendiren php betikleriyle binlerce elle güncellenen dizinden oluşmaktadır. Bu bakım kabusu geldi. Bu çözümü kullanarak bir çözüme dönüştürme manuel olarak güncellendi .htaccess dosya (lar) bir seçenek değildir *.

İdeal olarak, bu araç şunları yapardı:

  • apache / IHS web sunucusu için çalışmak
  • kullanıcılar ve yöneticiler için bir web arayüzü sağlamak
  • kullanıcıların makyaj URL'lerini oluşturmalarına, silmelerine ve güncellemelerine izin ver
  • Kullanıcıların her bir avantaj URL'si için büyük / küçük harf duyarlılığı veya büyük / küçük harf duyarlılığı belirtmesine izin ver
  • kullanıcıların her bir URL URL'si için HTTP 301 (kalıcı) veya HTTP 302 (geçici) olarak yönlendirmeleri belirtmelerine izin ver
  • kullanıcıların her bir url url'sini kalıcı (ürünler için) veya geçici olarak 'aşağıya çekilme' (pazarlama kampanyaları için) olarak belirtmelerini sağlar.
  • Vanity URL isteklerini göndermek için bir iş akışı kullanıcısı sağlamak ve başkalarının onaylaması için
  • (olası bir çözüm olarak), dosyanın sunucu tarafından dışarı aktarılmadan önce dosyanın sunucu tarafından onaylanmaması için tek bir yönetilen .htaccess dosyası yazmasını sağlayın.
  • (olası bir çözüm olarak) yönlendirmeleri / .htaccess dosyaları ile dizinleri yazabilir, ancak bu dizinleri oluşturmayı, güncelleştirmeyi ve silmeyi de yönetir.
  • muhtemelen bir veritabanı arka ucu veya bir xml arka uç kullanın.
  • Bu kritrayı, benim düşünmediğim bir şekilde karşılayan bir çözüm sağlayın.
  • (isteğe bağlı) çok basit raporlar sağlar (kalıcı URL sayısı, geçici URL sayısı, yaklaşan geçici URL'lerin süresi, vb.)

* Elle düzenlenmiş bir .htaccess dosyası kullanılarak, dosyaya bir hata konduğunda çok fazla risk oluşturur, tüm URL'leri etkileyebilir. Dizinlerde bulunan birden çok .htaccess dosyası, php yönlendirmelerini kullanarak aynı bakım kâbusudur.


6
2017-09-10 18:11


Menşei


Gerçekten mi? katılımcı yok mu? - Roy Rico
ama ben sana oy verdim ve favorim - kimsenin bana yanlış olduğunu ispat edip edemeyeceğini görmek için :) - warren


Cevaplar:


Kitabınızda "bakım kabusu" nu tam olarak neyin tanımladığını bilmiyorum, ancak apache'de dinamik bir yeniden yazma haritasına girmeyi deneyebilirsiniz:

RewriteEngine on
RewriteMap    vanity-map       prg:/path/to/vanity.pl
RewriteRule   ^/(.*)/(.*)$  /${vanity-map:$1}/$2

vanity.pl basit bir perl betiği olabilir ( $| = 1;) istek URL'sinin ilk bölümünü (yukarıda belirtildiği gibi) alır. STDIN ve bunu yeniden yazması gerekiyordu - ör. bir veritabanını sorgulayarak.

Şimdi, bu sadece ön cepheden ayrılıyor. Deneyimsiz bir Ruby on Rails programcısıyım (bu sadece boş zaman aktivitesi), ama bence, güzel görünmek istemiyorsa, bir kullanıcıyı doğrulayan bir uygulama bile yazabiliyor, bir yeniden yazma ve gösterme olanağı sunabiliyordum. Bir haftadan daha az bir süre içinde IT ITVER / $ WHATEVER'in onaylanması için bu yüzden, herhangi bir gerçek programcının birkaç saat içinde bir problemi olacağını düşünmüyorum. Veritabanına bağlı olarak, sadece küçük bir kişiselleştirme ile işi yapacak olan ön hazırlıklar bile olabilir (php * admin aklıma gelir).

Bu şekilde, tüm yönlendirme için merkezi bir kaynakla eşleştirilmiş bir veritabanı yaklaşımının tüm esnekliğini elde edersiniz. Veritabanı bölümünün URL bölümündeki dizini sunucu belleğinize uyduğu sürece, performans hakkında endişelenmenize bile gerek kalmaz.


4
2017-09-14 17:21



Bu sadece yönetimi ele alabileceğim ve bir gecede uygulayabileceğim bir kutu çözümü değil. Her ne kadar, inşa etmek için zaman / onayım olsaydı, bu gerçekten iyi bir çözüm gibi görünüyor. - Roy Rico


Bunu sadece tersine yaptığımı gördüm. Örneğin, webmail.domain.tld yönlendiriliyor domain.tld/squirrel.

Yapmıyorum düşünmek DNS aracılığıyla tanımladığınız şeyi yapabilirsiniz: etki alanını bir yoldan geçirdikten sonra, DNS'nin işlediği alanı değiştirdiniz.

TinyURL gibi bir URL kıskacını tarif ediyorsun. Ancak bu, daha önce tanımladığınız aynı bakım baş ağrılarını içerecektir.


0
2017-09-13 02:55



Kafamı nasıl karıştırmış olabileceğimi bilmiyorum ama DNS ile hiçbir şey yapmak istemiyorum, binlerce URL'yi kolayca yöneten ve onları yönlendiren bir araç arıyorum. Apache zaten bunu yapıyor, ama Uygulama elle yapılır, binlerce yönlendirmeyi yönetmeyi büyük bir sorun haline getirir. - Roy Rico
bir 'servis' diyerek, DNS düzeyinde bir yaklaşım için gittiğinizi düşündüm; yani, bu seni kastediyor Hangi tr.im benzeri bir hizmet mi arıyorsunuz, ancak dahili olarak çalıştırabilirsiniz? - warren