重写规则不起作用:如果文件存在,则重定向到php脚本

时间:2019-06-04 作者:Michael H.

我想用add_rewrite_rule 但没有成功。

我想实现的是,如果URLwww.myhomepage.com/custom-media-files/2/screenshot_15_1.jpg 将用户重定向到位于www.myhomepage.com/screenshotaccess.php 其中,我检查用户是否具有打开文件的权限。

编辑:所以我试着编辑htaccess文件,现在看起来像这样,但仍然不起作用。当文件直接存储在URL后面时,该规则似乎不适用。如果我转到没有文件的URL,则该规则有效。

#BEGIN screenshotaccess
RewriteEngine On
RewriteRule ^custom-media-files/$ https://google.com [L]
RewriteRule ^custom-media-files/([0-9]+)/$ https://google.com [L]
#RewriteRule ^custom-media-files/(.+)/screenshot_trade_(.+)_(.+)\\.jpg$ https://google.com [L]
RewriteRule ^custom-media-files/(.+)/screenshot_trade_(.+)_(.+)\\.jpg$ /screenshotaccess.php?usrid=$1&fn=$2&i=$3 [L]

#END screenshotaccess

1 个回复
SO网友:Paul G.

重写规则不起作用的原因是,如果您查看您的。htaccess文件,如果请求的文件存在于磁盘上,WordPress实际上不会加载。

因此,如果他们试图访问一个图像文件,因为它在那里,在磁盘上,WordPress不会加载,因此重写规则没有影响。

您可能需要使用。htaccess规则。以下是您可以尝试的示例:

RewriteEngine On
RewriteRule ^custom-media-files/(.+)/screenshot_trade_(.+)_(.+)\\.jpg$ /screenshotaccess.php?usrid=$1&fn=$2&i=$3 [L]

我也会确保screenshotaccess.php 你不仅仅是在使用你的查询/$_GET VAR没有首先检查其格式是否正确,即在使用数据之前先对其进行santize。

相关推荐