У меня есть страница 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.php и localhost/example/noticias.php?p=2, все будет работать. Если я добавлю первое правило, второе правило не сработает. И если я удалю первое правило, URL-адрес не будет работать.

Ткс заранее.

0
eskimopest 22 Окт 2018 в 18:26

2 ответа

Лучший ответ

Попробуйте это в своем файле .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>
0
kellymandem 23 Окт 2018 в 06:28

Вы можете использовать эти правила с выключенным MultiViews:

Options -MultiViews
RewriteEngine on

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

RewriteRule ^(noticias)/(\d+)/?$ $1.php?p=$2 [QSA,NC,L]
1
anubhava 22 Окт 2018 в 15:40
52932823