HTACCESS代码不适用于虚荣URLS

时间:2013-10-01 22:48:03

标签: .htaccess url vanity-url

现在,显示以下网址:

www.mysite.com/account.php?username=$username

我想要的是:

www.mysite.com/$username

我在htaccess文件中使用以下代码:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

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

但它不起作用:URL与以前相同。

怎么了?

1 个答案:

答案 0 :(得分:1)

你的规则只做这个:

如果有人请求www.mysite.com/$username,则在/account.php?username=$username内部为资源提供服务。

这就是全部。语法为RewriteRule <the URI that matches this> <gets internally rewritten to this>

因此,您对更改网址没有任何帮助。这不是mod_rewrite的工作原理。你想要的是能够从外部重定向浏览器,以便位置栏中的内容发生变化。要做到这一点,它要复杂得多:

RewriteCond %{THE_REQUEST} \ /account\.php\?username=([^&\ ]+)&?([^\ ]*)
RewriteRule ^ /%1?%2 [L,R=301]