Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
url重写不在php中读取_Php_.htaccess_Url Rewriting - Fatal编程技术网

url重写不在php中读取

url重写不在php中读取,php,.htaccess,url-rewriting,Php,.htaccess,Url Rewriting,我是url重写的初学者,我从各种渠道学习过。到目前为止,一切似乎都在运行,但这根本不起作用 我的htaccess文件中有这行代码 RewriteRule ^notice/all/page/([0-9]+)/?$ files/all_notice.php?show=all&page=$1 [NC,L] 这是我正在访问的url http://localhost/notice/all/page/1 在php中读取这样的变量时- <?php $type=$_GET['show'];

我是url重写的初学者,我从各种渠道学习过。到目前为止,一切似乎都在运行,但这根本不起作用

我的htaccess文件中有这行代码

RewriteRule ^notice/all/page/([0-9]+)/?$ files/all_notice.php?show=all&page=$1 [NC,L]
这是我正在访问的url

http://localhost/notice/all/page/1
在php中读取这样的变量时-

<?php
 $type=$_GET['show'];
 $page=$_GET['page'];
 echo $type.'--'.$page;
?>
我得到了显示变量的原样,但我得到的不是页码,而是通知。 出什么问题了?

试试这个:

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
RewriteRule ^notice/all/page/([0-9]+)/?$ /files/all_notice.php?show=all&page=$1 [L]
/
之后有
?$
,但应该在regex类之后,请尝试以下操作:

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
RewriteRule ^notice/all/page/([0-9]+)/?$ /files/all_notice.php?show=all&page=$1 [L]

您在
/
之后有
?$
,但它应该在regex类之后您的
重写规则是这样的:

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 [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
RewriteRule ^notice/all/page/([0-9]+)/?$ /files/all_notice.php?show=all&page=$1 [L]
唯一的区别是在文件前面添加了一个
/
,并删除了
NC
,因此它只是
[L]


编辑:如果您将
$1
更改为
$2
$3
甚至
$4
以查看是否传递了这些值,那么您应该看看会发生什么。

您的
重写规则是:

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 [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
RewriteRule ^notice/all/page/([0-9]+)/?$ /files/all_notice.php?show=all&page=$1 [L]
唯一的区别是在文件前面添加了一个
/
,并删除了
NC
,因此它只是
[L]



编辑:如果将
$1
更改为
$2
$3
甚至
$4
以查看是否传递了这些值,您可能应该看看会发生什么。

您访问的url是什么?@JanakaRRajapaksha您在那里捕捉到整数,这意味着显示的规则不能这样做。您访问的url是什么?@JanakaRRajapaksha如果您在那里捕获整数,这意味着所显示的规则不能做到这一点。我应该拥有all_notice.php文件的完整路径吗?它在root/files/all_notice.phpIs中添加
^
/
文件/…
之前修复它吗?我为
localhost/notice/all/page/1/
编辑了答案第一条规则,为
localhost/notice/all/page/1
编辑了第二条规则规则给出404,第二个规则再次给出“通知”除了页码,我应该拥有all_notice.php文件的完整路径吗?它在root/files/all_notice.phpIs中添加
^
/
files/…
之前修复它?我编辑了
localhost/notice/all/page/1/
的答案第一条规则,第二条规则是
localhost/notice/all/page/1
第一条规则是404第二条规则是再次发出“通知”而不是页码。我仍然收到“通知”而不是页码。你能建议其他方式吗this@sid尝试将
$1
设为
$2
$3
&这样。page=$4会起作用,因为
([0-9]+)
位于
^notice/all/page/([0-9]+)的第四位/
@JakeGould很抱歉打扰你,现在我明白你的意思了,为什么没有列出。我仍然收到“通知”而不是页码。你能建议其他方法吗this@sid尝试将
$1
设为
$2
$3
&这样。页面=$4将起作用,因为
([0-9]+)
位于
^notice/all/page的第四位/([0-9]+)/
@JakeGould很抱歉打扰你,现在我明白你的意思了,为什么没有列出它。