複数の再書き込みコマンドを実行し、うまく機能する .htaccess ファイルがあります。ただし、テスト中に、$_SERVER 変数に id を設定するという 1 つの重要な情報を省略しました (PHP スクリプトで $_SERVER を使用しています)。
URL example.com/f/847f34c76f64cad96effc8e9c3cea176 があり、長い文字列は ID を表し、f はリクエストを処理するスクリプトを表します。
スクリプト部分を処理する次の書き換えがあります。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteCond %{REQUEST_URI} !=/robots.txt
RewriteCond %{REQUEST_URI} ^/f/(.*)$ [NC]
RewriteRule ^ /scriptf.php [L]
私が言ったように、これはリダイレクトを正しく処理します。ただし、環境変数に配置された id も必要です。なんか、こんなことを考えていました
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !=/favicon.ico
RewriteCond %{REQUEST_URI} !=/robots.txt
RewriteCond %{REQUEST_URI} ^/f/(.*)$ [NC]
RewriteRule ^ - [E=id:$1]
RewriteRule ^ /scriptf.php [L]
残念ながら、これは機能しません。
また、クエリで ID を送信することは、私の場合は有効な解決策ではありません。
EDIT:参照用のエラーログ出力:
[Tue Oct 08 10:48:31 2013] [error] [client 192.168.77.53] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.