index.php上的.htaccess 2网址

时间:2016-02-03 14:17:57

标签: php apache .htaccess mod-rewrite

我在google上搜索很多但没有得到任何帮助。

我有2个像这样的网址

  • domain.com/index.php?page_id=203
  • domain.com/index.php?post_id=12

我需要他们这样

  • domain.com/203/my-page-name.html
  • domain.com/12/my-details-name.html

这是我的.htaccess文件

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?page_id=$1&title=$2 [L]
RewriteRule ^([^/]*)/([^/]*)\.html$ /index.php?post_id=$1&title=$2 [L]

以上代码始终打开page_id。是否可以使其工作或我可以为详细信息页面制作另一个文件?

1 个答案:

答案 0 :(得分:0)

两个重写模式是相同的(^([^/]*)/([^/]*)\.html$),而Apache无法分辨两者之间的区别。

考虑将您的URI结构更改为以下内容:

  • 页数:/id/name.html,例如:/203/page-name.html
  • 帖子:/posts/id/name.html,示例/posts/12/post-name.html

作为替代方案,您可以使用一个规则重写,例如index.php?id=$1&title=$2,从而无需使用两个不同的查询参数。