次のことを行うために .htaccess ファイルをまとめようとしています。
1) 次の URL パラメータを書き換えます。
www.domain.com/page.php?key0=val0&key1=val1 ...
に
www.domain.com/page.php/key0/val0/key1/val1 ...
2) .php 拡張子を削除する
www.domain.com/page.php
と、www.domain.com/page
最終結果は次のようになります。
www.domain.com/page/key0/val0/key1/val1 ...
この .htaccess をつなぎ合わせてみると、1) と 2) は満たしていますが、問題があります。
RewriteEngine on
ErrorDocument 400 /book/ServiceUnavailable
ErrorDocument 401 /book/ServiceUnavailable
ErrorDocument 404 /book/PageNotFound
ErrorDocument 500 /book/ServiceUnavailable
#change homepage /directory
DirectoryIndex index.php index.htm
#enable gzip compression
SetOutputFilter DEFLATE
RewriteRule ^([^/]+)/([^/]+)/([^/]+)(.*?)/?$ $1/$4?$2=$3 [L,QSA]
RewriteRule ^([^/]+)/$ $1.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [NC] [QSA] [L]
それが持っている2つの問題:
a) 一部の画像と含まれている JavaScript ファイルで 404 エラーが発生します。ドキュメント ルートから直接参照する js ファイルを含めますが、404 エラーが発生します。GET http://localhost/book/js/vendor/modernizr-2.6.2.min.js 404 (Not Found)
b) URL の末尾にスラッシュを入力すると、「内部サーバー エラー」エラーが発生します。たとえばwww.domain.com/page/
、内部サーバー エラーが発生します。
おそらくルールを調整して.js、.png、.jpgなどのファイルを除外し、問題b)を修正することで、誰かがa)を手伝ってくれますか?
ありがとう!