Я пытаюсь реализовать переписывание URL в моем приложении PHP. Может ли кто-то поэтапно организовать процедуру перезаписи URL-адресов в.htaccess.
В моем приложении я хочу реализовать следующий URL-адрес
www.domain.com/shop/shop.php?shopname=myshop&sh=1
в
www.domain.com/shop/myshop
я использую следующее
RewriteEngine On
RewriteBase /shop/
RewriteCond %{THE_REQUEST} /shop\.php\?shopname=([^\s&]+)&sh=([^\s&]+) [NC]
RewriteRule ^ %1? [R=301,L,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ shop.php?shopname=$1&sh=$2 [L,QSA,NC]*
Он показывает URL-адрес, например, www.domain.com/shop/myshop
Но не указывая на www.domain.com/shop/shop.php?shopname=myshop&sh=1
Если я правильно вас понимаю, вы можете делать то, что хотите:
RewriteCond %{QUERY_STRING} ^id=([^&]*)&name=(.*)$
RewriteRule ^/shop/shop.php$ /shop/$2?id=$1
RewriteCond проверяет строку запроса правильного формата и извлекает значения. $ 1 = идентификатор и $ 2 = имя.
RewriteRule переписывает URL-адрес правильного формата в новый формат, вставляя параметры имени и идентификатора из RewriteCond.
www.domain.com/shop/myshop