正则表达式以匹配 URL 中的所有.php文件扩展名,但在"管理"部分找到的除外



如果找到.php文件扩展名,我需要将活动站点上的所有流量重定向到没有.php文件扩展名的同一URL。 但是,由于这是一个wordpress网站,我需要排除wp-login.php以及在包含wp-admin/*的URL中找到的任何.php扩展名。

我如何通过正则表达式完成此操作:

目前,这匹配所有.php文件扩展名(.*).php /$1

但是如何排除 wp-login.php以及每当 url 包含 wp-admin 并以 .php 扩展名结尾时?

这是我尝试排除wp-login.php的方法,但不起作用,只是不确定如何做到这一点:(/)(^[wp-login])?(.*).php /$1

如何正确地做到这一点? 并且还排除 url 中的 wp-admin 文件夹,其中包含任何以 .php 结尾的字符串?

例如:

/testing.php - Needs to Match 
/wp-login.php - Should not Match 
/wp-admin/edit-post.php - Should not Match 
/wp-admin/tools.php?page=testing.php - Should not Match 
/product/category/testing.php - Should Match

这是您需要的正则表达式:

^/(?!wp-login|wp-admin).*.php$

在此处查看结果 https://regex101.com/r/f4GWDB/2/

/testing.php   MATCH
/wp-login.php  X
/wp-admin/edit-post.php   X
/wp-admin/tools.php?page=testing.php   X
/product/category/testing.php   MATCH

您可以使用以下正则表达式:

^/((?!(wp-login|wp-admin)).*).php$

您可以在此处查看正则表达式的验证

/testing.php                           -  matches
/wp-login.php                          -  does not match
/wp-admin/edit-post.php                -  does not match
/wp-admin/tools.php?page=testing.php   -  does not match
/product/category/testing.php          -  matches

最新更新