任何http请求(例如pdf)都应该重定向到 validate.php ,所以如果你调用一个URL(例如http:...../whatever/whatever/1.pdf
), htaccess 应该执行 validate.php 代替。
我在网络和stackoveflow上经历了很多例子,但没有运气。由于大多数人的工作都很好,我想我的服务器肯定有问题。
我该如何解决这个问题?
由于
注意: htaccess和validate.php文件存储在根目录中。
还有更多。
答案 0 :(得分:1)
将此代码放入DOCUMENT_ROOT/.htaccess
文件中:
RewriteEngine On
RewriteRule \.pdf$ /validate.php [L,NC]
答案 1 :(得分:0)
这就是全部:
# Turn On RewriteEngine
RewriteEngine On
# Set RewriteBase
RewriteBase /
# Redirect any http request to validate.php
RewriteRule . /validate.php [NC,L]
答案 2 :(得分:0)
将此内容添加到.htaccess文件中,< IfModule mod_rewrite.c>节
RewriteEngine On
RewriteRule ^ validate.php [L]
答案 3 :(得分:0)
问题是你正在混淆Apache htaccess
重定向&具有所需应用程序级别行为的授权。根据您希望.pdf
的每个请求在访问validate.php
之前通过名为.pdf
的脚本的事实,至少这是我在此假设的。
当我说你正在混淆时,强制进行验证的逻辑应该在你的validate.php
或PHP应用程序的更大框架内。该脚本应该在设置cookie或会话变量或您可能具有的任何验证方案之后验证用户 - 下载.pdf
文件。
这就是说,这不是一个简单的问题,以你描述的方式回答。
答案 4 :(得分:0)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ validate.php [L]
这个怎么样?