Phpmydirectory - 删除301重定向中的额外查询字符串

时间:2017-08-31 07:55:46

标签: .htaccess mod-rewrite

在phpmydirectory框架中,我尝试使用… search = fopen("Students.txt", "r"); if (!search) { perror("Students.txt"); return; } char line[4095+1]; while (fgets(line, sizeof line, search)) if (strstr(line, name)) printf("%s", line); fclose(search); } 301重定向将旧网页网址重定向到新的网页网址。

ex:.htaccess

重定向有效,但在新网址末尾,旧的友好网址连接为ID。

我该如何避免?

http://example.com/pages/newurl.html?id=old-friendly-url

1 个答案:

答案 0 :(得分:0)

Redirect 301 /pages/features.html /pages/ost-to-pst-ost-to-office365-ost-to-exchange-migrator.‌html?

据推测,这是有问题的重定向?如果它最后已包含?,那么原始请求中的查询字符串应该已被删除 - 但是,如果使用mod_alias Redirect,则最终会得到一个尾随?在目标网址上。

您应该使用mod_rewrite来执行此重定向。由于您已经在使用mod_rewrite进行内部重写,因此建议使用此方法以避免潜在的冲突。

您的原始重定向不是检查查询字符串,因此我认为这不是必需的 - 您只需要匹配URL路径。

以下重定向应该在现有的内部重写之前

RewriteRule ^pages/oldurl\.html$ /pages/newurl.html? [R,L]

? 替换上的尾随RewriteRule会从请求中删除查询字符串。或者,使用Apache 2.4 +上的QSD标志