使用htaccess映射页面

时间:2018-10-22 15:26:02

标签: php .htaccess

我有一个php页面,我正在尝试用htaccess映射它。想法是映射页面,如果没有参数,则页面为1。这是用于分页。

我的php页面:

<?php echo $page = isset($_GET['p']) ? $_GET['p'] : 1; ?>

在我的htaccess文件中,我有这个:

RewriteRule     ^noticias/                 noticias.php            [L]
RewriteRule     ^noticias/([0-9]+)/?$      noticias.php?p=$1       [L]

如果我尝试使用localhost/example/noticias.phplocalhost/example/noticias.php?p=2访问页面,则一切正常。 如果我添加第一条规则,第二条规则不起作用。如果我删除了第一条规则,则该网址将无法正常工作。

先谢谢。

2 个答案:

答案 0 :(得分:1)

您可以在MultiViews关闭的情况下使用以下规则:

Options -MultiViews
RewriteEngine on

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

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

答案 1 :(得分:0)

在您的.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>