Ubuntu'daki apache'de mod_rewrite'ı nasıl etkinleştirebilirim?


13

Ubuntu 10.04'te Apache ile mod_rewrite'ı nasıl etkinleştirirsiniz?

Ben kopyalama çalıştı rewrite.loaddan /etc/apache2/mods-availablehiç etc/apache2/mods-enabledama bu işi yoktu.

Yanıtlar:


20

Bunu deneyin: sudo a2enmod rewriteve sonra apache'yi yeniden başlatın.


4

Obsidian'ın a2enmod kullanma cevabı doğru çözümdür. andol'un yöntemi işe yarayacaktır, ancak yükseltme işlemini bozabilir. A2enmod'un yaptığı basitçe sembolik bir bağlantı oluşturmaktır, bu nedenle aşağıdaki ikisi aynı, her ikisi de uygun çözümdür:

  ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/

veya

  a2enmod rewrite

Ancak, a2enmod diğer dosya türlerini arayacaktır, bazılarında .conf ve muhtemelen başkaları vardır. Bu komutu öğrenmek için hiçbir neden yok, ancak arka planda neler olduğunu bilmek önemlidir.

Dosyayı kopyalamak gelecekteki herhangi bir yöneticiyi çok memnun etmeyecektir. :)


Eh, sadece yerel testler için, bu yüzden önemli değil. Ama sen, a2enmodyine de daha kolay.
Nathan Osman

2

Aslında, yanlış çözümün tür olma kopyalanırken rewrite.load gelen ./mods-available/ için ./mods-enabled/ çalışmış olmalıdır. Daha sonra apache'nizi yeniden başlatmayı hatırladınız mı?

Her durumda, ./mods-enabled/ genellikle ./mods-available/ içindeki ilgili dosyalara sembolik bağlantılar içermelidir . Bu, Obsidiyen'in belirttiği gibi, a2enmod ve a2dismod komutları tarafından en kolay şekilde ele alınmaktadır.

Modülü etkinleştirmenin yanı sıra, yeniden yazmayı da etkinleştirmeniz gerekir. RewriteCond : s ve RewriteRule : s yazmadan önce , bu yapılandırma bağlamında bir " RewriteEngine On " olmalıdır.


Bu da işe yarıyor. Mod bağlantılarında sembolik bağlantılarda doğru izinleri ayarlamayı unutmayın ... yoksa saçınızı dışarı çekeceksiniz.
Nathan Osman
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.