0

目前我的单页 URL 如下所示:

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
4

1 回答 1

0

“删除 URL 的一部分”是完全模棱两可的。您是否希望这样浏览器永远不会在其 URL 地址栏中看到此内容,即使他们在 URL键入了您要删除的目录?您是否只想给他们删除单词的较短 URL 并在内部将它们添加回来,以便 URL 指向的现有资源可以提供内容,或者是否存在错误的 URL 与额外目录中的额外目录您只需要在服务器内部删除的 URL,以便正确的资源(无目录)可以提供内容?

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

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

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

于 2012-10-01T18:32:00.913 回答