.htaccess的RewriteRule

时间:2015-04-18 06:06:15

标签: apache .htaccess

我在.htaccess中有这条规则:

RewriteRule ^([^/]*)$ /user.php?username=$1 [L]

输出:

http://domain.tld/username

期望的输出:

http://domain.tld/user/username

我该怎么做?

2 个答案:

答案 0 :(得分:2)

以下是如何将带有查询字符串的URL更改为路径:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/user.php [NC]
RewriteCond %{QUERY_STRING} ^.*username=([a-zA-Z]+).*$ [NC]
RewriteRule ^(.*)$ /user/%1? [L]

输入

http://domain.tld/user.php?username=bob

输出

http://domain.tld/user/bob

以下是另一种方式:

RewriteEngine On
RewriteCond %{REQUEST_URI} ^/user/ [NC]
RewriteRule ^user/(.+)$ /user.php?username=$1 [L]

输入

http://domain.tld/user/bob

输出

http://domain.tld/user.php?username=bob

您可以在此处测试.htaccess规则:http://htaccess.madewithlove.be/

答案 1 :(得分:0)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

Options -MultiViews
RewriteEngine On
RewriteBase /

RewriteRule ^user/([^/]+)/?$ user.php?username=$1 [L,NC,QSA]