2010-01-19 19 views
7

PHP sitemde, bazen kullanıcılara bir bakım sayfası göstermek istiyorum. Bunu PHP'de çok kolay yapabileceğimi biliyorum ama bir htaccess dosyası kullanmayı tercih ediyorum, bence performans bu şekilde daha iyi olabilir. Yani bilmek istediğim PHP'de bir htaccess dosyasını değiştirebilir miyim? Mümkünse,PHP'de bir .htaccess dosyası yazdınız mı?

1 - Dosyalara sahip olmanız ve 1'in kodunun altında olması ve diğerinin olmayacağı gibi, her iki dosya da diğer htaccess öğelerini de içerecektir. Daha sonra php, bu dosyanın, hangi dosyanın gösterileceğine geçmek için bir admin betiği çalıştırdığımızda, bu 2 dosyayı yeniden adlandırabilir. Bu adı, .htaccess

olarak değiştirir. 2. Geçerli .htaccess dosyasının içeriğini okuyun ve buna aşağıdaki kodu ekleyin: sonra da gerekirse dosyayı kaldırabilirsiniz.

RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} !^/maintenance\.php$ 
RewriteRule ^(.*)$ http://domain.com/maintenance.html [R=307,L] 

Amacım göstermek göstermek ya da olmamak bakım sayfasını değiştirmek için 1 tıklama işleme olabilir bir yönetici komut dosyası oluşturmaktır.

Bunun nasıl ya da açmak için fopen kullanabilirsiniz PHP

+0

http://us2.php.net/manual-lookup.php?pattern=write+file fwrite 4 aşağı seçmen açıkçası ben bunun nasıl bilmiyorum @the – hobodave

+1

isabet ya da "bunu yazarken vaktimi boşa harcamam", bu yüzden hiçbir şey için teşekkürler == =) – JasonDavis

cevap

12

bir .htaccess dosyasını değiştirmek için bile mümkün olup olmadığını ve fwrite herhangi bir örnek kod veya ipuçları bir dosyaya yazmak için lütfen. Ek modda açmak isteyeceksiniz, hangisinin geçerli olduğunu görmek için kılavuzu okuyun.

Bu, böyle şeyler yapmak için garip bir yol gibi geldiğini söyledi. maintenance.html dosyası mevcut olduğu

RewriteCond %{DOCUMENT_ROOT}/maintenance.html -f 
RewriteCond %{SCRIPT_FILENAME} !maintenance.html 
RewriteRule ^.*$ /maintenance.html [L] 

, o zaman sitemde bakımda:

Ben sadece dosya varlığı için kontrol kurallarını yeniden kullanarak yapmaya çalıştığımız şey başarmak.

+0

Teşekkürler, bu bir çeşit korumalı dosya olup olmadığından emin değildim, dosyalarla çalışma konusunda çok fazla tecrübem yok. – JasonDavis

+0

Buradaki çözüme katılıyorum. Cpanel ve Wordpress gibi programların/autogenerate .htaccess kodunu yazacağını biliyorum. Ancak, başka bir şekilde kolayca yapılabilecek bir şey için on tonluk bir çekiç gibi görünüyor. –

9

.htaccessPHP'dan yazmayı kesinlikle öneririm. .htaccess'a web yazıcısı kullanıcısına (geleneksel olarak çok düşük ayrıcalıklara sahip) yazmanız gerekir; Tek ihtiyacınız olan tek bir betik ve bir saldırgan sunucunuzu etkili bir şekilde yeniden yapılandırmak olabilir.

Bir uygulama içi anahtar bakım modu için PHP ürününün kendiliğinden olması, bakım sayfasını iade eder. Uygulamada bakım yaparken, bakım yeniden yazdırmayı etkinleştirmek için bir dosyayı geçici olarak .htaccess's konumuna yeniden adlandırabilirsiniz.

0
RewriteEngine On 
RewriteBase/
RewriteCond %{REQUEST_URI} !^/maintenance\.php$ 
RewriteRule ^(.*)$ http://domain.com/maintenance.html [R=307,L]