【问题标题】:redirect requests with slashes at the end of specific files to a non-slash URL将特定文件末尾带有斜杠的请求重定向到非斜杠 URL
【发布时间】:2015-03-02 20:22:06
【问题描述】:

我有一个这样的 .htaccess 规则:

RewriteRule ^cart/?$ cart.php [L,NC]

如果有人访问www.domain.com/cart,它可以正常工作,但如果有人访问www.domain.com/cart/,它会破坏网站的结构(末尾带有斜线)。

除了这个规则之外,如果人们在末尾输入斜杠,是否有办法将他们重定向到非斜杠 URL?

例如,如果有人访问www.domain.com/cart/,他们会被重定向到www.domain.com/cart

【问题讨论】:

    标签: .htaccess mod-rewrite redirect


    【解决方案1】:

    您可以使用此规则删除尾部斜杠:

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.+?)/$ /$1 [R=302,L,NE]
    

    确保将此规则置于上述内部重写规则之前。

    【讨论】:

    • 谢谢 :) 有没有办法只为特定文件制作它?因为我有一些我不想受到影响的子目录。
    • 子目录不会因RewriteCond %{REQUEST_FILENAME} !-d 条件而受到影响,但如果您仍想针对某些特定模式,那么它将是:RewriteRule ^(cart|store)/$ $1 [R=302,L,NC]
    • 实际上,奇怪的是,当访问带有斜杠的页面时,它现在指向domain.com/home/username/public_html/cart
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-19
    • 2011-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多