htaccess从index.php?cat = 123& page = 456& title = 789变为?p = 456?

时间:2014-05-24 14:37:47

标签: .htaccess

如何改变:

  

domain.nl/index.php?cat=123&page=456&title=789

  

domain.nl/?p=456

我认为我需要更改.htaccess并使用重写规则,但我无法让它工作。 我想在新URL中使用变量页面中的值。谢谢!

1 个答案:

答案 0 :(得分:1)

只有当index.php不需要cat和title变量中的信息时才可以这样做,因为你从url中删除了这些信息。我还假设index.php使用查询变量,而不是THE_REQUEST变量来获取此信息。你需要两个规则。一个外部将旧URL重定向到新URL。另一个只需要处理与url匹配的外部请求,并在内部将其重写为有效的旧URL。

RewriteCond %{THE_REQUEST} ^(GET|POST)\ /\?p=([^&]+)
RewriteRule ^ /index.php?page=%1 [L]

RewriteCond %{QUERY_STRING} page=([^&]+)
RewriteRule ^index\.php$ /?p=%1 [R,L]