Как переписать URL-адреса, в конце которых есть случайный%20?

Я получил несколько обратных ссылок на мой сайт с правильным URL-адресом, за исключением случайного конечного пробела, поэтому ссылки вышли с конечным %20, что вызывает страницу не найдена ошибка.

Я попробовал варианты этого:

RewriteRule ^/%20 /

но это не работает

Это RewriteCond заявление тоже нужно?

Обратите внимание, что это сервер IIS 6, и это страницы Wordpress, на которые я ссылаюсь.

Кто-нибудь, пожалуйста, сообщите ему секретный код, чтобы избавиться от %20 в конце URL.

Спасибо!

1 ответ

Вы можете навсегда перенаправить все соответствующие URL, имеющие трейлинг %20 на тот же URL без запаздывания %20 используя следующее правило:

Если вы используете UrlDecoding Off в вашем iirf.ini, используйте:

RedirectRule (.*)%20$ $1 [R=301]

В противном случае IIRF автоматически декодирует URL-адрес, прежде чем пытаться применить правила. Поэтому вы можете использовать:

RedirectRule (.*)\s$ $1 [R=301]

Для того, чтобы проверить это с помощью testdriver.exe:

  1. Поместите указанное выше правило в файл с именем iirf.ini,
  2. Создайте файл с именем SampleUrls.txt содержащий несколько тестовых URL, например:

    /                      NO REWRITE
    /%20                   REDIRECT 301 /
    /article               NO REWRITE
    /article%20            REDIRECT 301 /article
    
  3. Вызовите testdriver с помощью команды, аналогичной %iirfpath%\testdriver.exe -d .

Обратите внимание: testdriver не декодирует URL-адреса.

Вы должны получить вывод, подобный следующему (я удалил несколько новых строк):

TestDriver: linked with 'Ionic ISAPI Rewriting Filter (IIRF) 2.1.1.28 x64 RELEASE'.
TestDriver: The IIRF library was built on 'Aug  8 2011 02:26:29'

Processing URLs...(.\SampleUrls.txt)

***
Retrieving server variable that is not supported by TestDriver (SCRIPT_NAME)

NO REWRITE '/' ==> --
OK

***
Retrieving server variable that is not supported by TestDriver (SCRIPT_NAME)

REDIRECT 301 '/%20' ==> '/'
OK

***
Retrieving server variable that is not supported by TestDriver (SCRIPT_NAME)

NO REWRITE '/article' ==> --
OK

***
Retrieving server variable that is not supported by TestDriver (SCRIPT_NAME)

REDIRECT 301 '/article%20' ==> '/article'
OK


0 Errors in 4 Total Trials
Другие вопросы по тегам