我是url重写的初学者,我从各种来源研究过它。一切似乎都在运作,但这只是不起作用。
我的htaccess文件中有这行代码。
RewriteRule ^notice/all/page/([0-9]+)/?$ files/all_notice.php?show=all&page=$1 [NC,L]
这是我正在访问的网址
http://localhost/notice/all/page/1
当像这样读取php中的变量时 -
<?php
$type=$_GET['show'];
$page=$_GET['page'];
echo $type.'--'.$page;
?>
这就是我得到的
all--notice
我得到了show变量,但是我得到了通知,而不是页码。 出了什么问题?
答案 0 :(得分:2)
试试这个:
RewriteRule ^notice/all/page/([0-9]+)?$/ files/all_notice.php?show=all&page=$1 [NC,L] //for urls like localhost/notice/all/page/1/
RewriteRule ^notice/all/page/([0-9]+)?$ files/all_notice.php?show=all&page=$1 [NC,L] //for urls like localhost/notice/all/page/1
?$
之后你有/
但它应该在正则表达式之后
答案 1 :(得分:2)
您的RewriteRule
就是这样:
RewriteRule ^notice/all/page/([0-9]+)/?$ files/all_notice.php?show=all&page=$1 [NC,L]
试试这个:
RewriteRule ^notice/all/page/([0-9]+)/?$ /files/all_notice.php?show=all&page=$1 [L]
唯一的区别是在/
前面添加files/…
并删除了NC
,因此只有[L]
。
编辑:也许您应该看看如果将$1
更改为$2
,$3
甚至$4
会发生什么任何这些价值都会通过。