Mod rewrite 如何重写最后意外出现%20的URL?

Mod rewrite 如何重写最后意外出现%20的URL?,mod-rewrite,iirf,Mod Rewrite,Iirf,最后,我得到了一堆指向我的站点的反向链接,这些反向链接都有正确的URL,只是有一个意外的尾随空格,因此链接出现了尾随%20,这会导致页面未找到错误 我尝试了这方面的变化: RewriteRule ^/%20 / 但它不起作用 是否还需要RewriteCond语句 请注意,这是一个IIS 6服务器,这些是我链接到的Wordpress页面 有人请告诉他要去掉URL末尾的%20的密码 谢谢 您可以使用以下规则,将所有具有尾部%20的相关url永久重定向到相同的url,而不具有尾部%20: 如果在您的

最后,我得到了一堆指向我的站点的反向链接,这些反向链接都有正确的URL,只是有一个意外的尾随空格,因此链接出现了尾随
%20
,这会导致页面未找到错误

我尝试了这方面的变化:

RewriteRule ^/%20 /
但它不起作用

是否还需要
RewriteCond
语句

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

有人请告诉他要去掉URL末尾的
%20
的密码


谢谢

您可以使用以下规则,将所有具有尾部
%20
的相关url永久重定向到相同的url,而不具有尾部
%20

如果在您的
iirf.ini
中使用
urldescoding Off
,请使用:

RedirectRule (.*)%20$ $1 [R=301]
否则,IIRF会在尝试应用规则之前自动为您解码URL。因此,您可以使用:

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

为了测试这一点,请使用:

  • 将上述规则放入名为
    iirf.ini
    的文件中
  • 创建一个名为
    SampleUrls.txt
    的文件,其中包含一些测试URL,例如:

    /                      NO REWRITE
    /%20                   REDIRECT 301 /
    /article               NO REWRITE
    /article%20            REDIRECT 301 /article
    
  • 使用类似于
    %iirpath%\testdriver.exe-d的命令调用testdriver。
  • 请注意:testdriver不解码URL

    您应该会得到如下类似的输出(我删除了一些换行):


    非常感谢!我检查了日志文件,发现它会自动将%20替换为一个空格,所以我稍微修改了上面的表达式,即“RedirectRule(.*)\s$$1[R=301]”,效果非常好@phil,这是因为iirf在默认情况下使用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