我想用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
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。