使用.htaccess从URL中删除word /目录

时间:2012-10-01 16:42:16

标签: .htaccess url redirect rewrite

目前,我的单页网址如下所示:

http://website.com/post/6268/some-post-title

使用PHP生成帖子编号和标题。我想要做的是从URL中删除以下部分:

/post/6268/

所以它看起来像这样:

http://website.com/some-post-title

我尝试做的是将以下行添加到.htaccess文件中,但它不起作用:

RewriteRule ^post/(.*)/(.*)$ /$1

我在这里回顾了很多问题,以及我发现的其他一些论坛主题,但我无法找到解决方案。

.htaccess文件中的行实际上表明:

RewriteRule ^post/(.*)/(.*)$ view.php?pid=$1

1 个答案:

答案 0 :(得分:0)

“删除部分网址”完全不明确。你是否希望这样做,以便浏览器永远不会在他们的URL地址栏中看到这个,尽管他们在中输入你要删除的目录?您是否只想删除带有删除字词的较短网址,并在内部将其添加回,以便URL指向的现有资源可以为内容提供服务,或者是否存在错误的网址浮动您需要在服务器内部删除URL中的额外目录,以便正确的资源(没有目录)可以提供内容吗?

如果是前者,那么你就是在正确的轨道上:

RewriteRule ^post/[0-9]+/(.+)$ /$1 [L,R=301]

最后,你只需要从方括号中删除R=301标志。但是对于第二件事,你从网址中放弃6268,当服务器看到/some-post-title的请求时,它不知道该帖子ID应该是什么。