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
Apache .htaccess重写参数未传递到目标页_Apache_.htaccess_Mod Rewrite_Centos_Varnish - Fatal编程技术网

Apache .htaccess重写参数未传递到目标页

Apache .htaccess重写参数未传递到目标页,apache,.htaccess,mod-rewrite,centos,varnish,Apache,.htaccess,Mod Rewrite,Centos,Varnish,我想传递url参数,但参数没有传递到所需的页面 早些时候,我的站点托管在cpanel上,下面的代码可以成功运行,但在我将站点转移到VPS服务器后,服务器上运行了Cent OS Webpanel和Varnish缓存以及apache,这些参数没有在目标页面/url上传递 RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^downloa

我想传递url参数,但参数没有传递到所需的页面

早些时候,我的站点托管在cpanel上,下面的代码可以成功运行,但在我将站点转移到VPS服务器后,服务器上运行了Cent OS Webpanel和Varnish缓存以及apache,这些参数没有在目标页面/url上传递

RewriteEngine on  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  

RewriteRule ^download/(.*).html download.php?q=$1 [L,QSA]
我想运行url:
www.example.com/download/anywhere.html

重写后的目标url是
www.example.com/download.php?q=anything

问题是重写规则正在工作,但没有传递参数

但是如果我使用下面的代码,参数将成功传递

RewriteEngine on  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  

RewriteRule ^([a-zA-Z_0-9-]+)$ download.php?q=$1 [L,QSA]
或低于代码

RewriteEngine on  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule ^(.*) download.php?q=$1 [L,QSA]
我正在运行下面的url,参数成功地传递到目标页面
www.example.com/anything

目标url:
www.example.com/download.php?q=anything


但是我希望URL的格式如下
www.example.com/download/*****.html
用实际查询替换*星号

如果我向重写url添加一些静态文本,如
下载/
(.*)
.html
,则参数不会传递到目标页面


谢谢

很可能新服务器默认启用了
多视图
选项。将此行放在.htaccess顶部以禁用它:

Options -MultiViews
选项
MultiViews
Apache的内容协商模块使用,该模块在
mod_rewrite
之前运行,并使Apache服务器匹配文件扩展名。所以
/file
可以在URL中,但它将提供
/file.php