Girilen URL ne olursa olsun Apache'nin tek bir statik sayfayı sunmasını nasıl sağlayabilirim?


9

Tüm reklam etki alanlarını Apache örneğine yönlendiren bir reklam engelleme DNS sunucusu yapıyorum . Yani böyle bir şey

www.addomain.com

yönlendiriliyor

dnsserver.localnetwork

Ancak, ara sıra daha çok

www.addomain.com/some_ad

bu yönlendiriliyor

dnsserver.localnetwork/some_ad

bu bile yoktur ve bu nedenle bir 404hata oluşturur.

index.htmlGerçek istek ne olursa olsun, Apache'nin hizmet vermesinin bir yolu olacağını umuyordum . Aksi takdirde, Apache içermeyen alternatif bir çözümünüz varsa, ben de buna hazırım.


1
Mod_rewrite apache'lerine bir göz atabilirsiniz. Alan
adından

Bu, reklam engelleme yapmanın verimsiz bir yolu gibi görünüyor.
Panther

@ bodhi.zazen Nasıl yapardın? Çoğu reklam engelleyici benzer bir kavram üzerinde çalışır. İstekleri reklam alanlarına engelleme veya yönlendirme. Varsa, daha iyi bir alternatif uygulamaktan memnuniyet duyarım.
Haziran'da sayantankhan

1
Dürüst olmak gerekirse, noscript ve varsayılan adblock eklentilerini kullanıyorum. Bu yeterli değilse, bir anasistem dosyası (korumak için çalışır) veya bir proxy (privoxy) kullanabilirsiniz, ancak yine de bir kara listeyi kendiniz tutmak için daha fazla iş gerektirir. Bkz. Addons.mozilla.org/en-US/firefox/addon/noscript ve addons.mozilla.org/en-US/firefox/addon/adblock-plus , tarayıcınıza bağlı olarak alternatiflere ihtiyacınız olabilir.
Panther

Yanıtlar:


18

Ubuntu'da, mod_aliasetkinleştirildiğinden emin olun :

sudo a2enmod alias

Ardından VirtualHost yönergelerinizde kullanabilirsiniz AliasMatch.

Misal:

<VirtualHost *:80>
    DocumentRoot /path/to/your/host
    ServerName yourdomain.com
    DirectoryIndex index.html

    AliasMatch ^/(.*)$ /path/to/your/host/index.html

    <Directory "/path/to/your/host">
      Require all granted
    </Directory>
</VirtualHost>

Şimdi her şey yönlendiriliyor /index.html.


JS, CSS ve resimlerim de bu çözümle yeniden yönlendiriliyor. İsteğin uzantısını kontrol eden büyük bir regex yapmadan bunu önlemenin bir yolu var mı?
Ameo

8

.Htaccess dosyanızda bir yeniden yazma kuralına ihtiyacınız var. Aşağıdaki gibi bir şey işe yaramalıdır:

RewriteRule ^*$  http://www.addomain.com/index.html [R=301,NC,L]

Bu bir yönlendirme yapar. Doğrudan index.html hizmet etmez.
argo

1

Başka bir basit seçenek, 404 hata sayfasını sitenizdeki tüm sayfalar için göstermek istediğiniz statik sayfaya değiştirmek olacaktır. Bu nedenle, apache2 yapılandırma dosyalarınızda bu satırı (veya benzer bir şeyi) arayın:

ErrorDocument 404 /errors/not_found.html

Ve "/errors/not_found.html" ifadesini "/index.html" olarak değiştirin.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.