url重写不能在php中读取

时间:2014-06-01 04:35:13

标签: php .htaccess url-rewriting

我是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变量,但是我得到了通知,而不是页码。 出了什么问题?

2 个答案:

答案 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会发生什么任何这些价值都会通过。