したがって、私の Web サーバーは file_name.php のようなファイルを提供しています。file-name.php へのリクエストが透過的に file_name.php にリダイレクトされ、file_name.php へのリクエストが 301 リダイレクト経由で file-name.php に明示的にリダイレクトされるようにしたいと考えています。
すなわち。file_name.php をリクエストすると、代わりに透過的に file_name.php をロードする file-name.php に 301 リダイレクトされます。
残念ながら、これを実現するために作成した .htaccess ファイルは機能しません。ここにあります:
# make it so files with slashes that don't exist transparently redirect to files with underscores
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^-]*)-([^-]*)$ $1_$2
RewriteRule ^([^-]*)-([^-]*)-([^-]*)$ $1_$2_$3
# make it so files with underscores that do exist explicitely redirect to files with slashes
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^([^_]*)_([^_]*)$ /$1-$2 [L,R=301]
RewriteRule ^([^_]*)_([^_]*)_([^_]*)$ /$1-$2-$3 [L,R=301]
それらは単独では機能しますが、一緒にすると無限ループになります。
何か案は?