Apache обслуживает кэшированный контент при использовании mod_rewrite - PullRequest
0 голосов
/ 03 августа 2020

Дополнительная информация: веб-сервер работает на бесплатном общем хостинге, он также использует cloudflare.

Я хотел использовать следующие строки запроса:

https://websitename/share/result/parameter

Вместо этого:

https://websitename/share.php?result=parameter

Где параметр - это значение строки запроса.

Мне удалось сделать это, изменив файл .htaccess, который выглядит следующим образом:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ $1.php [NC]
    RewriteRule ^([^/]+)/([^/]+)$ share.php?result=$1
</IfModule>

Когда я обновляю содержимое общего ресурса . php, он обслуживает новый контент, если я получаю к нему доступ, перейдя по адресу:

https://websitename/share

Но когда я пытаюсь получить к нему доступ по:

https://websitename/share/ или https://websitename/share/parameter

Он просто обслуживает кешированную версию файла . php. Что я могу сделать с этой проблемой?

То, что я пробовал до сих пор:

  • Очищенный кеш на cloudflare
  • Установите уровень кеширования: нет строки запроса
  • Удален кеш браузера
  • Пытался открыть сайт в другом браузере

1 Ответ

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

Мне удалось решить проблему.

Решением было изменение htaccess с этого:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ $1.php [NC]
    RewriteRule ^([^/]+)/([^/]+)$ share.php?result=$1
</IfModule>

На это:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^([^\.]+)$ $1.php [NC]
    RewriteRule ^share/([^/]*)/([^/]*)$ /share?result=$1 [L]
</IfModule>
...