У меня есть связь, как этот /product.php?id=1
URL переписывания с помощью .htaccess
Я хочу переписать, что в .htaccess как /productname/id
или /productname/1
.
Можете ли вы помочь мне, ребята, я использую PHP?
У меня есть связь, как этот /product.php?id=1
URL переписывания с помощью .htaccess
Я хочу переписать, что в .htaccess как /productname/id
или /productname/1
.
Можете ли вы помочь мне, ребята, я использую PHP?
Предлагаю вам два подхода.
Первый будет самым простым. Вероятно, вы захотите использовать mod_rewrite в Apache. Затем отправьте этот вопрос на serverfault.com.
Подсказка: конфигурация (в файле .htaccess
), вероятно, будет что-то вроде:
RewriteEngine On
RewriteRule ^/product.php?id=([0-9]+)$ /productname/$1
Второй подход заключается в ваш product.php
сценарий сказать вызывающий браузер, чтобы загрузить новый URL. Для этого рассмотрим что-то вроде:
<?php
$id = $_GET['id'];
if ($id > 0) {
/* Redirect browser */
header("Location: http://www.mydomain.com/productname/$id");
/* Make sure that code below does not get executed when we redirect. */
exit;
}
?>
Для делать это, вам нужно будет либо название продукта, чтобы быть извлечена вместе с идентификатором для того, чтобы использовать его в выражении переписывания.
Вы также можете изучить RewriteMap
, где вы можете сопоставить список идентификаторов продуктов с названиями продуктов. Очевидно, вы сделали бы это, только если у вас ограниченное количество продуктов.
Если количество продуктов является динамическим и слишком часто меняются, я предлагаю вам получить имя продукта при получении идентификатора.