Регулярное выражение для URL, содержащего параметр - PullRequest
0 голосов
/ 26 мая 2020

Я пытался понять и использовать ответы на несколько разных вопросов здесь, на мой взгляд, тот же вопрос, но безуспешно ...

Мне нужно регулярное выражение для соответствия URL-адресу который содержит & orders-panel как часть URL-адреса, пример URL-адреса будет

https://example.com/wp-admin/post.php?post=xxxx&action=edit&orders-panel

может кто-нибудь мне помочь?

Я думаю об использовании плагина перенаправления, так как мне нужно, чтобы он запускался, когда я не вошел в систему, поэтому он перенаправляет на другую страницу.

Спасибо С уважением

Ответы [ 2 ]

1 голос
/ 26 мая 2020

Вы можете использовать приведенный ниже пример, он будет соответствовать любому URL-адресу с префиксом http / https с &orders-panel в нем

https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)&orders-panel

Основной шаблон URL-адреса был взят из этого ответа . Поскольку вы хотите только перенаправить, это должно сработать.

Однако, если вы хотите, чтобы он работал только с определенным доменом, вы можете использовать что-то вроде ниже: вы просто помещаете это в файл перенаправления, но если нет, и вы хотите перенаправить только тогда, когда URL-адрес содержит &orders-panel, вам не нужно регулярное выражение для этого, простого contains (на любом языке) будет достаточно.

0 голосов
/ 26 мая 2020

Спасибо за предложение. Пока я ждал ответа, я придумал другое решение, которое заключается в использовании функции в моем файле functions php как:

add_action( 'init', 'orders-redirect');
   function orders-redirect() {
     if (!is_user_logged_in() && strpos($_SERVER['REQUEST_URI'], "orders-panel")){
        wp_redirect( site_url('/login/') ); 
        exit; 
    }   
}

И, похоже, работает нормально, мой вопрос будет быть .. вы видите какие-либо серьезные причины не использовать мое решение и использовать регулярное выражение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...