Переписать URL в localhost не работает - PullRequest
0 голосов
/ 11 мая 2018

Я искал много документации, вопросов и ответов для перезаписи URL, как указано ниже

FROM

http://localhost/rewrite/product.php?id=1

К

http://localhost/rewrite/product.php/1

Чем я использую этот онлайн-инструмент для генерации правил URL. Мое правило

Options +FollowSymLinks
RewriteEngine on

RewriteRule /id/(.*) product.php?id=$1

И я тоже проверил httpd.conf. Allooverride включен.

<Directory />
    AllowOverride All
    Require all denied
</Directory>

Но, тем не менее, этот URL-адрес не меняется на URL-адрес желания. где я иду не так. я не очень разбираюсь в переписывании и mod_rewrite. пожалуйста, будьте терпеливы со мной.

Ответы [ 2 ]

0 голосов
/ 11 мая 2018

Следующая команда перенаправит http://localhost/product/1 на http://localhost/product.php?id=1

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/product/([0-9]+)$ [NC]
RewriteRule ^product/(.*)?$ product.php?id=$1 [L,QSA]

Итак, для настройки создайте файл product.php в базе каталога localhost со следующим кодом:

<?php
var_dump($_GET);

А затем откройте http://localhost/product/1 и должно отобразиться:

array(1) {
["id"]=>
  string(1) "1"
}
0 голосов
/ 11 мая 2018

То, что делает это правило, заключается в том, что если вы теперь получите доступ, например, к URL-адресу http://localhost/rewrite/product.php/1,, он сопоставит его с URL-адресом http://localhost/rewrite/product.php?id=1,, и у вас будет доступ к параметру id GET в коде.

Он не будет преобразовывать URL-адрес из http://localhost/rewrite/product.php?id=1 в http://localhost/rewrite/product.php/1,, вам придется сделать это самостоятельно в коде или с перенаправлением.

...