doujianqin5172 2018-04-05 18:07
浏览 69
已采纳

.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 2018-04-05 18:29
    关注

    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]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?