url使用.htacces在php中重写多个查询字符串变量

时间:2016-12-31 07:36:40

标签: .htaccess url-rewriting query-string

我在php中有动态页面,如:

http://www.example.com/page.php?tokenid=1&tokenname=About Us

我想删除此部分:

.php?tokenid=1&tokenname=About Us
带有查询字符串的

页面扩展名,并将网址显示为:

http://www.example.com/About Us

更新

到目前为止我已尝试过:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /

    RewriteCond %{REQUEST_FILENAME}.php -f
    #RewriteRule ^([a-zA-Z0-9\._-]*)?/(.*)$ $1.php [QSA,E=PATH_INFO:/$2,L]
    RewriteRule ^([a-zA-Z0-9\._-]*)?/(.*)$ $1.php/$2 [QSA,E=PATH_INFO:/$2,L]
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^(.*)$ $1.php [QSA,L]

    # Fix PHP Authentication with FastCGI mode
    RewriteCond %{HTTP:Authorization} !''
    RewriteRule .*php - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
</IfModule>

1 个答案:

答案 0 :(得分:2)

在.htaccess文件中尝试此操作:

RewriteEngine on
RewriteBase /

# Skip actual files/directories
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# If the host matches example.com
RewriteCond %{HTTP_HOST} ^www\.example\.com$
# And the request URI starts with page.php
RewriteCond %{REQUEST_URI} ^\/page\.php
# And the querystring matches tokenid=DIGIT&tokenname=TOKEN_NAME
RewriteCond %{QUERY_STRING} tokenid=\d&tokenname=(.*)
# Then rewrite the URI to TOKEN_NAME
RewriteRule ^(.*)$ %1? [L,R]

如果您愿意,可能需要try it online

enter image description here