Как переписать 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
:
- Поместите указанное выше правило в файл с именем
iirf.ini
, Создайте файл с именем
SampleUrls.txt
содержащий несколько тестовых URL, например:/ NO REWRITE /%20 REDIRECT 301 / /article NO REWRITE /article%20 REDIRECT 301 /article
- Вызовите 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