1

次のことを行うために .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)を手伝ってくれますか?

ありがとう!

4

0 に答える 0