我正在尝试使用Instagram或Facebook这样独特的代码重写URL。
示例:facebook.com/joe
我的网址是这样的:website.com/user.php?username=joe
我尝试在.htaccess中使用此规则:
RewriteEngine On
RewriteRule ^([a-z]+)$ user.php?username=$1 [L]
但是它不起作用,它会在/user.php
上重定向。
如果我使用此规则,它将起作用:
RewriteEngine On
RewriteRule ^u/([^/]*)$ /user.php?username=$1 [L]
但是结果是website.com/u/joe
,我更喜欢没有u
。
有什么主意吗?
答案 0 :(得分:1)
将此添加到您的网络根.htaccess
目录中的/
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ user.php?username=$1 [NC,L]
模式.*
中的^(.*)$
与/anything
匹配,并且括号有助于将任何内容部分捕获为替换中使用的$1
变量网址为user.php?username=$1
。
如果需要多个参数,只需在&%{QUERY_STRING}
之后添加$1
即可进行分隔,并将其添加到查询字符串的末尾。
例如:如果您通过website.com/joe?age=31
,则结果将为website.com/user.php?username=joe&age=31
。
最后,标志NC
仅使规则不区分大小写,因此它也匹配/Joe
或/JOE
。