修复.htaccess中的正则表达式代码以美化此URL

时间:2018-02-22 15:09:20

标签: regex .htaccess mod-rewrite duplicates

我目前在.htaccess文件中美化网址(www.abc.com/user.php?url="rio“)的正则表达式代码是

RewriteCond %{REQUEST_URI} user
RewriteRule ^([a-zA-Z0-9-/]+)/([a-zA-Z0-9-/]+)$ user.php?url=$2
RewriteRule ^([a-zA-Z0-9-/]+)/([a-zA-Z0-9-/]+)/$ user.php?url=$2

它工作正常,页面网址被美化为:

www.abc.com/user/rio

但是现在有一个问题,现在即使我改变了网址,如下所示:

www.abc.com/user/user/user/rio
www.abc.com/user///rio
www.abc.com/user/abc/rio

这些链接的工作方式相同,这就是内容重复。 请帮忙!

1 个答案:

答案 0 :(得分:1)

您可以在您的网站根目录中尝试这些规则.htaccess:

Options -MultiViews
RewriteEngine On

# remove multiple slashes
RewriteCond %{THE_REQUEST} //
RewriteRule ^.*$ /$0 [R=301,L,NE]

# handles /user/something
RewriteRule ^user/([\w-]+)/?$ user.php?url=$1 [L,QSA,NC]

Options -MultiViews需要关闭内容协商功能。