我的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]
由于
答案 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而不是重定向/重写每个请求两次,那会更好。