我需要一个正则表达式来用连字符替换下划线
I need a regex to replace underscore by hyphen
我的申请有问题。我在我的项目中使用 CodeIgniter,并且禁止在类名中使用连字符(允许使用下划线)。但我想用连字符分隔 URL 中的单词。所以我需要用正则表达式重写 url,以在 htaccess 文件中用连字符替换下划线。
想法?
例如:
我有很多链接:
domain.tld/I_need_help
domain.tld/I_need_regex
我想要:
domain.tld/I-need-help
domain.tld/I-need-regex
在htaccess文件中,应该有:
RewriteRule ^(.*)_(.*)$ /-
您可以根据需要使用路线更改url。
$route['link-to_something'] = 'class_name/some_function';
编辑后:
试试这个:
RewriteRule ^([^_]*)_([^_]*_.*) - [N]
RewriteRule ^([^_]*)_([^_]*)$ /- [L,R=301]
经过长时间的搜索,确定。我有解决方案:
转到Codeigniter Routes regex - using dashes in controller/method names
当您只需更改一行就可以实现这一点时,为什么还要使用正则表达式?
打开application/config/routes.php并更改
$route['translate_uri_dashes'] = TRUE;
这就是你需要做的。
我的申请有问题。我在我的项目中使用 CodeIgniter,并且禁止在类名中使用连字符(允许使用下划线)。但我想用连字符分隔 URL 中的单词。所以我需要用正则表达式重写 url,以在 htaccess 文件中用连字符替换下划线。 想法?
例如:
我有很多链接:
domain.tld/I_need_help
domain.tld/I_need_regex
我想要:
domain.tld/I-need-help
domain.tld/I-need-regex
在htaccess文件中,应该有:
RewriteRule ^(.*)_(.*)$ /-
您可以根据需要使用路线更改url。
$route['link-to_something'] = 'class_name/some_function';
编辑后: 试试这个:
RewriteRule ^([^_]*)_([^_]*_.*) - [N]
RewriteRule ^([^_]*)_([^_]*)$ /- [L,R=301]
经过长时间的搜索,确定。我有解决方案:
转到Codeigniter Routes regex - using dashes in controller/method names
当您只需更改一行就可以实现这一点时,为什么还要使用正则表达式?
打开application/config/routes.php并更改
$route['translate_uri_dashes'] = TRUE;
这就是你需要做的。