Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 没有文件名的HTACCESS请求\u URI_Php_.htaccess_Url Rewriting - Fatal编程技术网

Php 没有文件名的HTACCESS请求\u URI

Php 没有文件名的HTACCESS请求\u URI,php,.htaccess,url-rewriting,Php,.htaccess,Url Rewriting,有没有办法不必引用~abc123/uploader,而是修改我的正则表达式,以便动态传递不带文件名的请求uri 我尝试过从请求uri中删除文件名,并更改正则表达式,但都没有效果 我要做的是确保某些文件类型是由PHP脚本处理的,不能直接访问。这里有两条线索可以帮助您: 首先,您可以在正则表达式中使用这些关键字(我让您搜索更多信息):%{SCRIPT\u FILENAME}和%{REQUEST\u URI} 其次,下面是一个如何使用它的示例: RewriteEngine On RewriteCond

有没有办法不必引用
~abc123/uploader
,而是修改我的正则表达式,以便动态传递不带文件名的请求uri

我尝试过从请求uri中删除文件名,并更改正则表达式,但都没有效果


我要做的是确保某些文件类型是由PHP脚本处理的,不能直接访问。

这里有两条线索可以帮助您:

首先,您可以在正则表达式中使用这些关键字(我让您搜索更多信息):
%{SCRIPT\u FILENAME}
%{REQUEST\u URI}

其次,下面是一个如何使用它的示例:

RewriteEngine On
RewriteCond %{REQUEST_URI} !(images)
RewriteRule ^(.*)\.(txt|rtf|docx?|odt|pdf|bmp|gif|jpe?g|png|tiff?)$ http://%{SERVER_NAME}/~abc123/uploader/process.php [nc]
还有一些人知道,您甚至可以通过这种方式更改整个目标文件名(注意:
STATIC
PATH\u LOCAL
变量是一个环境变量,我之前已经计算了几个步骤):


以下两条线索可能对您有所帮助:

首先,您可以在正则表达式中使用这些关键字(我让您搜索更多信息):
%{SCRIPT\u FILENAME}
%{REQUEST\u URI}

其次,下面是一个如何使用它的示例:

RewriteEngine On
RewriteCond %{REQUEST_URI} !(images)
RewriteRule ^(.*)\.(txt|rtf|docx?|odt|pdf|bmp|gif|jpe?g|png|tiff?)$ http://%{SERVER_NAME}/~abc123/uploader/process.php [nc]
还有一些人知道,您甚至可以通过这种方式更改整个目标文件名(注意:
STATIC
PATH\u LOCAL
变量是一个环境变量,我之前已经计算了几个步骤):

我会照你说的做。(?!…)是一个负前瞻,即不包括图像。[-\w.]*$位将与普通文件名匹配。我不明白的是,没有[R]的
http://%{SERVER\u NAME}/..
重定向只是一个正常的内部重写,为什么不这样做呢

RewriteEngine On
RewriteBase   /
RewriteCond   %{REQUEST_URI}        ^(?!images)(.*)/[-\w\.]*$
RewriteRule   ^(.*)\.(txt|rtf|docx?|odt|pdf|bmp|gif|jpe?g|png|tiff?)$   http://%{SERVER_NAME}/%1/process.php [NC,L]
没有任何条件或

RewriteRule  ^(?!images)(.*)/[-\w]*\.(?:txt|rtf|docx?|odt|pdf|bmp|gif|jpe?g|png|tiff?)$  $1/process.php [NC,L]
如果你想让它更容易理解

我会照你说的做。(?!…)是一个负前瞻,即不包括图像。[-\w.]*$位将与普通文件名匹配。我不明白的是,没有[R]的
http://%{SERVER\u NAME}/..
重定向只是一个正常的内部重写,为什么不这样做呢

RewriteEngine On
RewriteBase   /
RewriteCond   %{REQUEST_URI}        ^(?!images)(.*)/[-\w\.]*$
RewriteRule   ^(.*)\.(txt|rtf|docx?|odt|pdf|bmp|gif|jpe?g|png|tiff?)$   http://%{SERVER_NAME}/%1/process.php [NC,L]
没有任何条件或

RewriteRule  ^(?!images)(.*)/[-\w]*\.(?:txt|rtf|docx?|odt|pdf|bmp|gif|jpe?g|png|tiff?)$  $1/process.php [NC,L]

如果你想让它更容易理解的话。

谢谢你的提示,但我还是不知所措。我不想在模板示例中引用和替换字符串,在您的规则中,您引用字符串“templates”。我只想去掉请求文件名,并将其附加到“process.php”中,作为我规则的最后一部分。谢谢你提供的线索,但我仍然不知所措。我不想在模板示例中引用和替换字符串,在您的规则中,您引用字符串“templates”。我只想去掉request_文件名,并将其附加到“process.php”中,作为我规则的最后一部分。