doujianqin5172
doujianqin5172
2018-04-05 18:07

.htaccess重写GET参数

已采纳

I would like to change my URL from site.com/functions/analyze.php?password=test to site.com/functions/analyze/password/test. I am using a .htaccess rewrite rule in attempt to achieve this.

However, upon browsing to my /functions/analyze/password/test I can see that the GET parameter being passed is test.php/password/test and not test.

Where am I going wrong?

# Enable editing.
Options -MultiViews
RewriteEngine On

# Hide PHP extenstion.
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

# Reroutes for GET.
RewriteRule ^(functions/analyze)/(password)/(.+)$ $1.php?$2=$3 [L,NC,QSA]
  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

2条回答

  • dongyan3853 dongyan3853 3年前

    You can have this rule in root .htaccess with MultiViews (content negotiation) turned off:

    Options -MultiViews
    RewriteEngine On
    
    RewriteRule ^(functions/analyze)/(password)/(.+)$ $1.php?$2=$3 [L,NC,QSA]
    
    点赞 评论 复制链接分享
  • drcmue4619 drcmue4619 3年前

    or you can try

    RewriteEngine On
    RewriteRule ^functions/analyze/password/([A-Za-z0-9-]+)/?$ /functions/analyze.php?password=$1

    </div>
    
    点赞 评论 复制链接分享

相关推荐