【问题标题】:Htaccess not getting 'GET' variables even with QSA flags即使有 QSA 标志,Htaccess 也没有得到“GET”变量
【发布时间】:2015-11-11 06:34:29
【问题描述】:

我似乎无法让我的 '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,而不是在任何文件夹中,我正在尝试实现以下 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 是文件名。

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

有什么想法吗?

【问题讨论】:

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


【解决方案1】:
RewriteEngine On
RewriteBase /
RewriteRule ^v/([^/]+)/(.*)/?$ v.php?shareid=$1&filename=$2 [L]

您之前将v 作为shareidubgvfmrsazwxoyp 作为文件名。

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

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

【讨论】:

  • 谢谢伙计,它可能有效,但 htaccess 正在使用我的本地主机配置对我起作用。稍后将尝试使用普通托管。干杯。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-12-21
  • 1970-01-01
  • 2021-07-18
  • 2020-01-08
  • 2021-11-29
  • 1970-01-01
  • 2020-04-04
相关资源
最近更新 更多