.htaccess rewriteRule帮助

时间:2010-10-08 19:15:31

标签: php javascript html .htaccess browser

我的index.html中有一个链接:

  href="my_page.php?cat=14&p=1";

现在,我该如何重写它,使它看起来像这样:

 /my_page/14/1

到目前为止,我有这个,但我不知道如何将结尾'/ 1'添加到此:

  RewriteRule ^kategori/([0-9_]+)$ browse_cat.php?cat_gr=$1 [NC]

由于

3 个答案:

答案 0 :(得分:2)

家中没有安装apache,但这应该可以解决问题。

  RewriteRule ^kategori/([0-9_]+)(?:/(0-9]+))?$ browse_cat.php?cat_gr=$1&p=$2 [NC]

(?:...)?使第二部分可选。所以/ kategori / 14以及/ kategori / 14/1应该可以工作。

如果没有,你需要两个规则

  RewriteRule ^kategori/([0-9_]+)$ browse_cat.php?cat_gr=$1 [NC]
  RewriteRule ^kategori/([0-9_]+)(?:/(0-9]+))?$ browse_cat.php?cat_gr=$1&p=$2 [NC]

答案 1 :(得分:0)

ReWriteCond {%REQUEST_URI} ^/my_page/([0-9]*)/([0-9]*)
ReWriteRule .* /my_page.php?cat=%1&p=%2 [NC,L]

这只有在指定了cat和p时才有效。

答案 2 :(得分:0)

如果您实际使用/my_page.php?cat=14&p=1这样的网址并希望它们“显示”为/my_page/14/1,则需要两条规则:一条将/my_page.php?cat=14&p=1外部重定向到{{1}并在内部将/my_page/14/1重写为/my_page/14/1

/my_page.php?cat=14&p=1

请注意,此规则仅适用于此特定网址(数字和顺序或参数)。更一般的规则将变得更加复杂;在这种情况下,使用像PHP这样的更高级语言可能更容易。

此外,如果您已经在HTML文档中使用“正确”的URL而不是重定向/重写每个请求两次,那会更好。