2 ответа

Лучший ответ

Наконец, я получил свое решение, я использовал следующий код, который работает для меня.

Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteRule ^allmodels/(.*)$ /allmodels?st=$1 [P,NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$1 [L]

И спасибо, рыбный.

0
eharaj husain 28 Мар 2017 в 17:15

Я снова обновил предложенное решение в соответствии с полученной новой информацией:

Options +FollowSymLinks -MultiViews
RewriteEngine on
RewriteRule ^/allmodels/(.*)$ /allmodels?st=$1 [P,NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$1 [L]

RewriteRule. * Index.php / $ 1 должен идти вторым, иначе вызов / allmodels-call будет переписан в index.php / allmodels /(.*). Или вы должны добавить третью строку для исключения / allmodels-звонков, как я сделал.

R = 301 и R = постоянный - то же самое. Используйте то, что вы предпочитаете.

И, наконец, убедитесь, что целевой файл действительно существует;)


< Сильный > UPDATE

Настройка вашего rewrite.log требует добавления следующей строки сразу после «RewriteEngine on»

RewriteLogLevel Debug

После того, как вы это сделали, перезапустите apache и позвоните по своему URL. Затем загляните в /var/log/apache2/rewrite.log и вы увидите, как ваш запрос обрабатывается модулем перезаписи. Либо опубликуйте результат, либо опишите его так, чтобы другие могли оказать вам дополнительную поддержку. Спасибо :)

< Сильный > ОБНОВЛЕНИЕ - 2

После некоторой перемотки назад стало ясно, что предлагаемое правило само по себе не является проблемой. Но способ получить окончательное решение не был оптимальным ^^

Таким образом, я изменил свое решение, чтобы оно соответствовало утвержденной правильной и рабочей версии, с «P» для прокси вместо «R» для перезаписи, чтобы скрыть orignal-URL, в который пользователь получает запись.

1
Hello Fishy 28 Мар 2017 в 17:19