4

我最终得到了一堆指向我的网站的反向链接,这些反向链接具有正确的 URL,除了有一个意外的尾随空格,所以链接出来时带有尾随%20,这会导致页面未找到错误。

我尝试了这个变化:

RewriteRule ^/%20 /

但它不起作用。

是否RewriteCond也需要声明?

请注意,这是一个 IIS 6 服务器,这些是我要链接到的 Wordpress 页面。

%20有人请告诉他删除URL 末尾的 a的密码。

谢谢!

4

1 回答 1

2

您可以使用以下规则将所有有尾随的相关 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
于 2011-08-16T20:54:32.610 回答