.htaccess 我需要一个正则表达式将下划线替换为连字符

dffbzjpn  于 2022-11-16  发布在  其他
关注(0)|答案(3)|浏览(156)

我的应用程序有一个问题。我在我的项目中使用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 ^(.*)_(.*)$ /$1-$2
rn0zuynd

rn0zuynd1#

您可以使用路由来更改您想要的URL。
$route['link-to_something'] = 'class_name/some_function';
编辑后:试试这个:

RewriteRule ^([^_]*)_([^_]*_.*) $1-$2 [N]
RewriteRule ^([^_]*)_([^_]*)$ /$1-$2 [L,R=301]
xfb7svmp

xfb7svmp3#

为什么你要使用正则表达式,当你可以实现这一点,改变只是一行?
打开application/config/routes.php并进行更改

$route['translate_uri_dashes'] = TRUE;

这就是你需要做的。

相关问题