即使有 QSA 标志,Htaccess 也没有获得 'GET' 变量

Htaccess not getting 'GET' variables even with QSA flags

我似乎无法让我的 'GET' 变量通过我的 htaccess 代码传递。下面是:

<IfModule mod_rewrite.c>
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php[\s?] [NC]
RewriteRule ^ %1 [R=301,L]

RewriteRule ^/(.*)/(.*)/(.*)$ v.php?shareid=&filename= [QSA, L]
</IfModule>

我在根目录中有 v.php,不在任何文件夹中,我正在尝试实现以下 URL:

http://localhost/v/ubgvfmrsazwxoyp/Screen%20Shot%202015-11-05%20at%2020.51.45.png

其中 ubgvfmrsazwxoyp 是共享 ID,Screen%20Shot%202015-11-05%20at%2020.51.45.png 是文件名。

None 正在加载页面时注册。 注意:我也想隐藏 .php 扩展。

有什么想法吗?

RewriteEngine On
RewriteBase /
RewriteRule ^v/([^/]+)/(.*)/?$ v.php?shareid=&filename= [L]

您之前得到 v 作为 shareidubgvfmrsazwxoyp 作为文件名。

注意:以上代码专门针对服务器根目录下的一个文件。如果重写规则在虚拟主机配置或服务器配置文件中,你需要使用:

RewriteRule ^/v/([^/]+)/(.*)/?$ v.php?shareid=&filename= [L]