Я получаю url как это 'http://mysite.pl/public?products,BEER/7,shop_shelf', и я хочу переписать его в http://mysite.pl/index.php?product=BEER/7 в .htaccess.Слэши в выражении в htaccess
Любые идеи?
Я получаю url как это 'http://mysite.pl/public?products,BEER/7,shop_shelf', и я хочу переписать его в http://mysite.pl/index.php?product=BEER/7 в .htaccess.Слэши в выражении в htaccess
Любые идеи?
'RewriteRule ^products,([a-zA-Z\.\+a-z0-9-_/]*),([a-zA-Z\.\+a-z0-9-]+))$ index.php?product=$1 [L,B,NC]
Немного проблем, которые я вижу там, вы не проверяете «публичный»? в начале, я думаю, вы тоже запутываете свои алфавиты.
RewriteRule ^public\?products,([a-zA-Z\.\+-_]+)\/([0-9]+),([a-zA-Z-_]+)$
Попробуйте что-то в этом роде, я только что написал это без проверки. Он должен проверить строку, начинающуюся с public?products,
, за которой следует подшаблон, состоящий из 1 или более символов [a-zA-Z\.\+-_]
(в вашей цели будет $1
), а затем /
, за которым следует другой подшаблон, состоящий из одного или нескольких символов [0-9]
($2
), а затем ,
последовал наконец другую подмаска, содержащие символы [a-zA-Z-_]
($3
, если вам это нужно)
Как я уже сказал, я не проверял это так просто начать с этого и баловаться с ней
К сожалению, этот код не работает. См. Мой ответ. –
Все после знак вопроса - строка запроса, а RewriteRule
работает только с строкой замещения. Вместо этого вы должны использовать RewriteCond
.
RewriteEngine On
RewriteCond %{QUERY_STRING} ^products,([-/_\.a-z0-9]*?),[-/_\.a-z0-9]+$ [NC]
RewriteRule ^public$ index.php?product=%1 [NC,L]
Вы предпринимали какие-либо попытки написать образец? Не должно быть слишком сложно. – Jonathon
Да, я думаю, что некоторые думают так: 'RewriteRule^products, ([a-zA-Z \. \ + A-z0-9 -_ /] *), ([a-zA-Z \. \ + A -z0-9 -] +)) $ index.php? product = $ 1 [L, B, NC] ' – user2073745