Boş REQUEST_FILENAME mod_rewrite

2 Cevap php

. Benim htaccess dosyasında bu var:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule !\.(gif|jpg|png|css|js|ico|flv|php|txt)$ index.php

Şimdi ben hiçbir REQUEST_FILENAME bulunursa index.html iletecek bir kural eklemek gerekir.

Yani www.mysite.com index.html iletmek istiyorum ve www.mysite.com / file.html index.php iletmek istiyorum.

2 Cevap

Ben normalde bu kuralları yeniden kullanın:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

Bu index.php için varolmazlar tüm adresler yeniden yazar.

Sadece biten URL yolu kısıtlama olmaksızın bir kural eklemek:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule !\.(gif|jpg|png|css|js|ico|flv|php|txt)$ index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.html

Ama muhtemelen ile işleme varsayılan hata kullanmak daha iyi olacaktır:

ErrorDocument 404 /index.html

Aksi takdirde sunucu olmayan bir mevcut dosyanın bir istek üzerine bir 404 ile yanıt vermez.