Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
Php 使用htaccess映射页面_Php_.htaccess - Fatal编程技术网

Php 使用htaccess映射页面

Php 使用htaccess映射页面,php,.htaccess,Php,.htaccess,我有一个php页面,我正试图用htaccess来映射它。其思想是映射页面,如果没有参数,则页面为1。这是用于分页的 我的php页面: <?php echo $page = isset($_GET['p']) ? $_GET['p'] : 1; ?> 如果我尝试使用localhost/example/noticias.php和localhost/example/noticias.php?p=2访问页面,一切正常。 如果添加第一条规则,则第二条规则不起作用。如果我删除第一条规则,url

我有一个php页面,我正试图用htaccess来映射它。其思想是映射页面,如果没有参数,则页面为1。这是用于分页的

我的php页面:

<?php echo $page = isset($_GET['p']) ? $_GET['p'] : 1; ?>
如果我尝试使用
localhost/example/noticias.php
localhost/example/noticias.php?p=2
访问页面,一切正常。 如果添加第一条规则,则第二条规则不起作用。如果我删除第一条规则,url将无法工作


Tks。请在您的
.htaccess
文件中尝试此操作

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /

RewriteRule ^noticias/?$ noticias.php [QSA,NC,L]
RewriteRule ^noticias/([1-9]+)/?$ noticias.php?p=$1 [QSA,NC,L]
</IfModule>

重新启动发动机
重写基/
重写规则^NOTIIAS/?$NOTIIAS.php[QSA,NC,L]
重写规则^NOTIIAS/([1-9]+)/?$NOTIIAS.php?p=$1[QSA,NC,L]

您可以在禁用多视图的情况下使用这些规则:

Options -MultiViews
RewriteEngine on

RewriteRule ^(noticias)/?$ $1.php [NC,L]

RewriteRule ^(noticias)/(\d+)/?$ $1.php?p=$2 [QSA,NC,L]

RewriteCond
指令似乎是多余的,只会增加开销。@white先生,谢谢您对这一点的介绍
Options -MultiViews
RewriteEngine on

RewriteRule ^(noticias)/?$ $1.php [NC,L]

RewriteRule ^(noticias)/(\d+)/?$ $1.php?p=$2 [QSA,NC,L]