如何隐藏 URL 中的查询字符串?

如何隐藏 URL 中的查询字符串?

以下是导致 URL 重写的 .htaccess 代码,

RewriteRule ^24-(.+)~(.+)\.html$ gallery_catagory.php?gallnm=$1&GalleryID=$2&%{QUERY_STRING} [nc]

但我仍然可以看到每个页面的 .html? 后面附加的查询字符串。

我应该如何隐藏/重写 URL 以使其对搜索引擎友好?

答案1

mod_rewrite是错误的地方,无法使 URL 变得“友好”。这必须在 Web 应用程序内部进行,因为它首先在页面内部创建链接。

您需要重写规则来将这些“友好”的 URL 重新转换为 Web 应用程序可以理解的内容。您需要哪种规则取决于您使用的应用程序(您未命名),您应该在文档中找到它。

答案2

仅此重写规则就可以同时启用“友好”URL 和“丑陋”URL:可以通过两个 URL 访问相同的内容。

.htaccess重写规则是将请求路由到负责请求内容的 .php 脚本。

.php 脚本生成的 html 中的 URL 呈现给用户,而作为 php 开发人员,您需要生成“友好”的 URL。

.htaccess您甚至可以通过向header("Location: ....")您的 php 脚本添加重定向规则来强制使用友好 URL 。

请注意,即使您已经将 php 脚本更改为仅生成友好 URL,您仍可能会在 Web 服务器日志中看到旧的、不美观的 URL 请求 - 这是因为您的网站已被搜索引擎抓取或您网页的某些链接已被复制到其他网站(博客、论坛) - 没关系。

相关内容