. Benim webroot aşağıdaki htaccess dosyası vardır:
DirectoryIndex index.htm index.html index.php AddType application/x-httpd-php .htm .html
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:REDIRECT_STATUS} 200 RewriteRule .* - [L]
RewriteCond $1 !\.(gif|jpe?g|png|ico|css|js|pdf|mp3|flv|swf)$
RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/(.+)\.htm$ /$1.php [nc,L,QSA]
Rewrite kuralın amacı bir. Php uzantısı (. Htm uzantılı dosya aslında var olmadığı sürece) ile aynı dosya için bir istek. Htm uzantılı bir sayfa için herhangi bir talebi değiştirmektir. Bu kural bir. Htm uzantılı bir sayfa için sorarsanız, ben PHP içerik olsun anlamda "iş" gibi görünüyor. Bu ne istiyorum, ama aynı zamanda HTTP başlık müfettiş araçları web sitesi bir 404 yanıt veriyor bildirmektedir. Ne garip benim araçlar AYNI YANIT vücutta, sunucu PHP kod tarafından üretilen doğru HTML döndüren rapor olduğunu. Bu bir çelişki gibi görünüyor: sayfa bulunamadı, ama burada yine istediği içeriğin?
Ben bir 200 kodu ([= 200 R]) göndermek için sunucu zorlarsanız, ben bir "İç sunucu hatası" yanıtını olsun, ve ben ([R = 301]) bir 301 kodu göndermek için zorlarsanız, sonuç olduğunu tarayıcı 2 HTTP isteklerini yerine 1 yapar ve ikinci bir zaten 404 olmak biter (ama hala cevap vücutta istenen HTML olsun!). Kafam karıştı!