好的,所以我已经搜索了其他人的回答问题,但似乎什么都没有用?我想要的是将包含下划线的所有.html文件重定向到使用连字符的相同文件名,除非下划线文件存在。
这是我目前的.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^(.*).html$
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^_]*)_([^_]*_.*) $1-$2 [N]
RewriteRule ^([^_]*)_([^_]*)$ /testing/$1-$2 [L,R=302]
结果: 1.当我导航到/this_file_does_not_exist.html时,我被重写为/testing/this-file-does-not-exist.html
我哪里错了?
答案 0 :(得分:0)
RewriteCond
需要为每个RewriteRule
重复或包含在单独的规则中:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
RewriteRule ^([^_]*)_([^_]*_.*?\.html)$ $1-$2 [N]
RewriteRule ^([^_]*)_([^_]*?\.html)$ /testing/$1-$2 [L,R=302]