私は機能するのに十分単純なルールを取得しようとしています:
Input URL: http://example.com/css/styles.css/t=123456
Expected output: http://example.com/css/styles.css
はt=123456
ファイルの変更時刻を表し、サーバー側で自動的に追加されます。現在、それはクエリ文字列ですが、状況によっては適切にキャッシュされていないようです。そのため、代わりに URL でエンコードしたいと考えています。
私が試したルールは非常に単純です。
RewriteRule (.*)/t=[0-9]+ $1
しかし、何らかの理由で、404 Not Found エラーが発生し続けました。
[R=301]
書き換えがどこに行くのかを確認するために追加したところ、何らかの理由でこれが出力 URL であることがわかりました。
http://example.com/home/evilzoro/public_html/css/styles.css
そのため、パラメータを正しく削除している間に、ファイルシステムのパス全体を追加していました!
奇妙なことに、次のような他の同様のルールは問題なく機能します。
RewriteCond %{REQUEST_FILENAME} !\.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [QSA]
それで、私は何を間違っていますか?