所以我的网络服务器正在提供像 file_name.php 这样的文件。我想这样做,以便对 file-name.php 的请求透明地重定向到 file_name.php,并且对 file_name.php 的请求通过 301 重定向明确重定向到 file-name.php。
IE。您请求 file_name.php 并且您将 301 重定向到 file-name.php ,它会透明地加载 file_name.php 。
不幸的是,我为完成此操作而编写的 .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]
他们自己工作,但一起工作会导致无限循环。
有任何想法吗?