Конфликт в правилах перезаписи htaccess - PullRequest
0 голосов
/ 04 августа 2020

Это мой файл htaccess

<IfModule mod_rewrite.c>
RewriteEngine On

RewriteRule ^([a-zA-Z0-9_-]+)$ search-product.php?st=basic&product=$1 [N]
RewriteRule ^([a-zA-Z0-9_-]+)-([a-zA-Z0-9_-]+)$ search-product-city.php?st=basic&product=$1&city=$2 [N]
RewriteRule ^([a-zA-Z0-9_-]+)$ profile.php?user=$3 [L]
</IfModule>

Проблема в том, что работает только одно правило. Все три файла находятся в каталоге root. Как заставить работать все правила. Спасибо за помощь.

1 Ответ

0 голосов
/ 04 августа 2020

Чтобы идентифицировать разные файлы PHP, требуется уникальный префикс в правиле htaccess для перенаправления на указанный файл c. Например, для страницы поискового продукта searchproduct. Теперь ваш URL-адрес будет иметь вид

https://DOMAINNAME.com/searchproduct/PRODUCTID.

. Точно так же вы можете получить и другие страницы. Попробуйте следующий код.

RewriteEngine On
RewriteRule ^/?searchproduct/([a-zA-Z0-9_-]+)$ search-product.php?st=basic&product=$1 [N]
RewriteRule ^/?searchcity/([a-zA-Z0-9_]+)-([a-zA-Z0-9_]+)$ search-product-city.php?st=basic&product=$1&city=$2 [N]
RewriteRule ^/?profile/([a-zA-Z0-9_-]+)$ profile.php?user=$3 [L]

с его помощью вы можете добавить любое количество htaccess правил, которые вам нужны.

...