planlandığı gibi. htaccess dosyası çalışmıyor

3 Cevap php

OK, so we were working in the wrong directory, meh!

Biz bir php komut dosyası için bazı dosyaları yönlendirmek için kurulum bir .htaccess dosyası var. Şimdi biz bu yönlendirme atlamak isteyen bazı zor dosyaları ekliyoruz. Şimdiye kadar bu çalışıyor görünmüyor ve biz şaşkın.

. Aşağıda zaten başka bir uygulama için çalışıyor Motor çalıştıktan sonra bizim ilk htaccess dosya içeriği olan:

RewriteCond $ 1 ^! (Index.php | robots.txt | favicon.ico)

RewriteRule ^ (. *) $ / Index.php / $ 1 [L]

Biz /directory/ artık dosyaları yüklemek için çalışıyoruz yüzden RewriteCond bölümüne bu her ekleyerek denedim:

RewriteCond% {} REQUEST_URI! Rehberi

RewriteCond $ 1 ^! (Index.php | i / | robots.txt | favicon.ico | dizin)

Ne işe yarıyor gibi görünüyor. Bu yüklemek için nasıl herhangi bir fikir?

Örnekler:

Should redirect

http://site.com/thisredirects/

Should not redirect

http://site.com/directory

http://site.com/directory/

http://site.com/directory/index.php

vb

3 Cevap

Bu deneyin:

Alışkanlık yönlendirme

RewriteRule directory/.* - [L]

Yönlendirmeleri

RewriteRule ^$ thisredirects/ [L]
RewriteRule (.*) thisredirects/$1 [L]

Eğer / dizin dir ikinci bir. htaccess dosyası yapma ve bunu bir NoRewrite yapıyor denediniz mi?

Bu aslında index.php için docroot varolan bir dosya değil bir şey yönlendirmek istediğiniz gibi görünüyor. Yazımının Bu biraz böyle işlemesi gerekir:

RewriteCond %{REQUEST_FILENAME} -s [OR]  # file with size
RewriteCond %{REQUEST_FILENAME} -l [OR]  # file is a link
RewriteCond %{REQUEST_FILENAME} -d       # file is a directory
RewriteRule ^.*$ - [NC,L]                # don't rewrite [last rule]
RewriteRule ^(.*)$ /index.php/$1 [NC,L]       # everything else gets sent to index.php

[OR] operatörü siz de RewriteCond üzerinde aradığınız şey olabilir.

Sadece / dizin bölümünü beyaz listeye istiyorsanız Ayrıca [L] "son kuralın" için işaretlenmiş Yönlendirmelerinizin önce Kuralı koyabilirsiniz

RewriteRule ^/directory.*$ - [NC,L]