如何删除URL的特定部分?

时间:2015-02-04 11:25:15

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

目前,我的.htaccess上有以下代码,用于删除网址中波形符后面的字符串:

# Tilde removal from URL (e.g. example.com/~tildestuff/about to example.com/about)
RewriteCond %{THE_REQUEST} /~\w+/(\S+) [OR]
RewriteCond %{THE_REQUEST} /~\w+
RewriteRule ^ /%1 [R=302,NE,L]

这在大多数情况下都适用,但是如果我输入此网址:

http://www.example.com/~example/public/

它没有重定向,但确实有效:

http://www.example.com/~example/about-us

并被重定向到:

http://www.example.com/about-us

关于如何实现这一目标的任何想法?

非常感谢

1 个答案:

答案 0 :(得分:0)

它应该已经适用于你的规则。尝试在第一条规则的末尾添加斜杠:

RewriteCond %{THE_REQUEST} /~\w+/(\S+/?) [OR]
RewriteCond %{THE_REQUEST} /~\w+
RewriteRule ^ /%1 [R=302,NE,L]