Как добавить идентификатор и заголовок в php url - PullRequest
0 голосов
/ 23 февраля 2019

У меня есть URL-адрес, который отлично работает с sub_id, но теперь я хочу изменить URL-адрес, и я хочу показать 'sub_categories_name' вместе с 'sub_id'.Но 'sub_categories_name' похоже на dummy, то есть оно бесполезно, если человек ищет только с помощью 'sub_id', тогда он покажет результат.

Я пробовал что-то подобное, но страница не отображаетсялюбые данные

<?php 
  $categories_name = $_GET['categories_name'];
  $result = "SELECT * FROM sub_categories where 
    categories_name='$categories_name'";
    $data =mysqli_query ($conn, $result);
    while ($row = mysqli_fetch_array($data))
    { 

      $sub_categories_name = $row['sub_categories_name'];
      $sub_id = $row['sub_id'];

        $sub_categories_name  = urldecode($sub_categories_name );  
        $sub_categories_name = str_replace(' ', '-', $sub_categories_name); 

        $url = '/classified/' . urlencode($sub_id) . '-' . urlencode($sub_categories_name);

    ?>
<a href="/classified/1-Health-and-Beauty">
    <div class="cat-box p-0 m-0 cat-url">
        <p class="subcat-url"><?php echo $sub_categories_name;?></p>
    </div>
</a>
<?php }?>

Когда мой URL похож на 'http://localhost/classified/1',, он показывает данные, но когда мой URL похож на' http://localhost/classified/1-Health-and-Beauty',, он не показывает никаких данных.Я просто хочу показать данные об этом.

вот мой {DOCUMENT_ROOT}/classified/.htaccess

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ category-classifieds.php?sub_id=$1 [L]

фактически сгенерированный фрагмент исходного кода HTML-ссылок.(просмотр в браузере):

<a href="/classified/1-Health-and-Beauty">
    <div class="cat-box p-0 m-0 cat-url">
        <p class="subcat-url">Health and Beauty</p>
    </div>
</a>

Заранее спасибо, пожалуйста, помогите мне.

1 Ответ

0 голосов
/ 23 февраля 2019

Как уже упоминалось в комментариях, где-то в вашем проекте вы должны принять решение по $_GET['sub_id'].Если вместо этого вы используете intval($_GET['sub_id']), все после номера будет обрезано.

На основании mod_rewrite вы можете изменить свое правило на

RewriteRule ^(\d+) category-classifieds.php?sub_id=$1 [L]

, что означает 1 или более цифр наначало текущей части URL на основе папки, игнорируя все, что следует после цифр.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...