猿问

Apache 在使用 mod_rewrite 时提供缓存内容

附加信息:网络服务器在免费共享托管上运行,它也使用 cloudflare。

我想使用查询字符串,如下所示:

https://网站名称/共享/结果/参数

而不是这个:

https://网站名称/share.php?结果=参数

其中参数是查询字符串值。

我设法通过修改 .htaccess 文件来做到这一点,如下所示:

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

当我更新share.php文件的内容时,如果我通过导航到以下位置访问它,它将提供新内容:

https://网站名称/分享

但是当我尝试通过以下方式访问它时:

https://websitename/share/https://websitename/share/parameter

它只是提供share.php文件的缓存版本。对于这个问题我能做什么?

到目前为止我尝试过的事情:

  • 清除了 cloudflare 上的缓存

  • 将缓存级别设置为:无查询字符串

  • 删除浏览器缓存

  • 尝试在不同的浏览器中打开网站


狐的传说
浏览 82回答 1
1回答

犯罪嫌疑人X

我设法解决了这个问题。解决方案是更改 htaccess:<IfModule&nbsp;mod_rewrite.c> &nbsp;&nbsp;&nbsp;&nbsp;RewriteEngine&nbsp;On &nbsp;&nbsp;&nbsp;&nbsp;RewriteCond&nbsp;%{REQUEST_FILENAME}&nbsp;!-f &nbsp;&nbsp;&nbsp;&nbsp;RewriteRule&nbsp;^([^\.]+)$&nbsp;$1.php&nbsp;[NC] &nbsp;&nbsp;&nbsp;&nbsp;RewriteRule&nbsp;^([^/]+)/([^/]+)$&nbsp;share.php?result=$1</IfModule>对此:<IfModule&nbsp;mod_rewrite.c> &nbsp;&nbsp;&nbsp;&nbsp;RewriteEngine&nbsp;On &nbsp;&nbsp;&nbsp;&nbsp;RewriteCond&nbsp;%{REQUEST_FILENAME}&nbsp;!-f &nbsp;&nbsp;&nbsp;&nbsp;RewriteRule&nbsp;^([^\.]+)$&nbsp;$1.php&nbsp;[NC] &nbsp;&nbsp;&nbsp;&nbsp;RewriteRule&nbsp;^share/([^/]*)/([^/]*)$&nbsp;/share?result=$1&nbsp;[L] </IfModule>
随时随地看视频慕课网APP
我要回答