使用 htaccess 重写 url,隐藏查询字符串

例如我们有如下 URL:

http://example.com/users.php?name=tania

但是我们想要让 URL 变成如下:

http://example.com/users/tania

我们可以通过修改 .htaccess:

.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?users/(.*?)/?$ /users.php?name=$1 [L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /users\.php\?name=([^\&\ ]+)
RewriteRule ^/?users\.php$ /users/%1? [L,R=301]

 

我们仍然可以获取到 URL 查询参数.

users.php
<?php

echo $_SERVER['REQUEST_URI'] . '<br>';

print_r($_GET);

 

/users/tania Array ( [name] => tania )

 

posted @ 2018-11-22 01:44  Ryan_zheng  阅读(681)  评论(0编辑  收藏  举报