.htaccess htaccess将特定目录的下划线重写为破折号

.htaccess htaccess将特定目录的下划线重写为破折号,.htaccess,mod-rewrite,seo,.htaccess,Mod Rewrite,Seo,我可以用下面的代码成功地将下划线重写为破折号——但我需要的代码只能用于某个目录,而我无法使该部分正常工作 作品: RewriteRule ^([^_]*)_([^_]*)_(.*)$ /$1-$2-$3 [R=301,L] RewriteRule ^([^_]*)_(.*)$ /$1-$2 [R=301,L] 不起作用: RewriteRule ^/media/entry/([^_]*)_([^_]*)_(.*)$ /media/entry/$1-$2-$3 [E=unscors:Yes] R

我可以用下面的代码成功地将下划线重写为破折号——但我需要的代码只能用于某个目录,而我无法使该部分正常工作

作品:

RewriteRule ^([^_]*)_([^_]*)_(.*)$ /$1-$2-$3 [R=301,L]
RewriteRule ^([^_]*)_(.*)$ /$1-$2 [R=301,L]
不起作用:

RewriteRule ^/media/entry/([^_]*)_([^_]*)_(.*)$ /media/entry/$1-$2-$3 [E=unscors:Yes]
RewriteRule ^/media/entry/([^_]*)_(.*)$ /media/entry/$1-$2 [E=unscors:Yes]
RewriteCond %{ENV:unscors} ^Yes$
RewriteRule ^/media/entry/(.*)$ http://domain.com/media/entry/$1 [R=301,L]

RewriteRule
模式中删除所有前导的
/
时,所有模式都应该可以正常工作(如前两个示例所示)

代码如下:

RewriteRule ^media/entry/([^_]*)_([^_]*)_(.*)$ /media/entry/$1-$2-$3 [E=unscors:Yes]
RewriteRule ^media/entry/([^_]*)_(.*)$ /media/entry/$1-$2 [E=unscors:Yes]
RewriteCond %{ENV:unscors} ^Yes$
RewriteRule ^media/entry/(.*)$ http://domain.com/media/entry/$1 [R=301,L]
还有一个nice可以帮助您验证您的配置,例如

该工具有一些限制,例如,目前没有实现某些功能,如
%{REQUEST_FILENAME}
%{ENV:…}
,但对于简单的规则,应该可以


我希望这会有所帮助。

重写规则可能不应该有一个前导的
/
。请改为
RewriteRule^media/entry/……