Создание правила mod_rewrite с одной переменной GET независимо от уровня URL - PullRequest
0 голосов
/ 21 сентября 2018

Я пытаюсь заставить этот сценарий работать:

URL: www.domain.com/sub/level/details/123/ Должен быть обработан как: www.domain.com/sub/level/? product = 123

"sub" и "level" могут различаться.Это также может быть / foo / doo / details / 1 / или с еще большим количеством подуровней: / foo / bar / foo / bar / foo / details / 123 /

Только следующая часть: "/ details /" сопровождаетсяцелое число / id не меняется.

Я попытался и изменил файл .htaccess из более старой установки TYPO3:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^de/(.*)$  http://test.domain.com/$1 [R=301,L]

RewriteRule ^typo3$ - [L]
RewriteRule ^typo3/.*$ - [L]
RewriteRule ^uploads/.*$ - [L]
RewriteRule ^fileadmin/.*$ - [L]
RewriteRule ^typo3conf/.*$ - [L]
RewriteRule ^./details/([0-9]+)/$ ?product=$1

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* /index.php

Буду очень признателенза вашу поддержку!

Спасибо

1 Ответ

0 голосов
/ 21 сентября 2018

Ваше регулярное выражение неверно, так как вы соответствуете одному символу при запуске до /detail/.

Замените это правило:

RewriteRule ^./details/([0-9]+)/$ ?product=$1

На это:

RewriteRule ^(.+)/details/(\d+)/?$ $1?product=$2 [L,NC,QSA]
...