使用 .htaccess 代码将 url 中的下划线替换为连字符时跳过子目录

skip subdirectory when replacing underscore to hyphen from urls using .htaccess code

我必须用 URL 中的 _(下划线)替换 SEO purpose.I 有数百个文件,所以我不能通过 one.So 更改一个文件名 我写了一些 .htaccess 执行此操作的代码。

这是我正在使用的代码。

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

它成功地将我的网址从下划线更改为连字符。

现在我有一个名为“administrator”的子目录,我不想将此目录的 url 从下划线替换为连字符。

所以我想跳过此目录的 url 以跳过 .htaccess 代码。

请帮助我如何跳过这个。

谢谢!

您可以使用否定前瞻:

RewriteRule ^(?!administrator/)([^_]*)_(.*)$ /- [R=301,L,NC]

这将从该规则中跳过 /administrator/ 子目录。

也可以单独排除:

RewriteCond %{REQUEST_URI} !^/administrator/
RewriteRule ^([^_]*)_(.*)$ /- [R=301,L] 

如果您随后需要排除多个目录会更容易,因为只需再次添加同一行即可。