Htaccess没有得到' GET'甚至使用QSA标志的变量

时间:2015-11-10 21:39:16

标签: apache .htaccess mod-rewrite url-rewriting friendly-url

我似乎无法得到我的' 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=$1&filename=$2 [QSA, L]
</IfModule>

我在根目录中有v.php,而不在任何文件夹中,我正在尝试获取以下网址:

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

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

加载页面时没有注册。 注意:我还想隐藏.php扩展程序。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

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

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

注意:上述代码专门用于服务器根目录中的文件。如果重写规则在vhost配置或服务器配置文件中,则您需要使用:

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