【问题标题】:.htaccess rewrite condition trailing slash only for specific directories.htaccess 仅针对特定目录重写条件斜杠
【发布时间】:2011-08-27 10:46:50
【问题描述】:

我有这条规则很好用,并为我网站上的每个目录添加了一个斜杠。 如何仅为某些目录(例如 /courses/ )添加尾部斜杠?我不希望每个目录/路径都有一个斜杠。

  RewriteCond %{REQUEST_URI} ^/[^\.]+[^/]$
  RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]

【问题讨论】:

    标签: apache .htaccess mod-rewrite url-rewriting


    【解决方案1】:
    RewriteCond %{REQUEST_URI} ^/(courses|foo|bar)$
    RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1/ [R=301,L]
    

    应该在coursesfoobar 是您要添加尾部斜杠的目录的情况下工作。

    【讨论】:

    • 感谢工作!多层次怎么样。像这样的东西会起作用吗? RewriteCond %{REQUEST_URI} ^/(course|course/online-courses/illness)$
    • 应该可以的。如果您对它有任何问题,请大声疾呼。
    【解决方案2】:

    认为这会起作用:

    <Files .htaccess>
        order allow,deny
        deny from all
    </Files>
    
    Options All -Indexes
    IndexIgnore *
    
    # Don't add trailing slash for /include/
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/include/$
    RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1
    
    # Respond to /include/ with 404 instead of 403
    RedirectMatch 404 ^/include(/?|/.*)$
    

    【讨论】:

    • 与詹姆斯所说的基本相同。只要确保您没有使用订单创建无限循环。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-13
    • 2014-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多