使用 .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]
如果您随后需要排除多个目录会更容易,因为只需再次添加同一行即可。
我必须用 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]
如果您随后需要排除多个目录会更容易,因为只需再次添加同一行即可。