.htaccess - 在url中重写用户登录

时间:2011-11-14 22:09:15

标签: zend-framework .htaccess mod-rewrite

我需要使用用户登录重写URL,并使用Zend Framework。 ZF项目的.htaccess如下:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L] 

RewriteRule ^.*$ index.php [NC,L]

如何添加规则,重写

http://yourdomain.com/user/TOMMY

http://yourdomain.com/user/?login=TOMMY

? “TOMMY”是用户登录的地方。

重要提示:重写后,浏览器中的网址无需更改。

我可以添加下一条规则:

RewriteRule ^user/([a-zA-Z0-9]+)$ /user/?login=$1 [L,R]

但它不正确,因为服务器将浏览器重定向到其他页面。 TNX。

1 个答案:

答案 0 :(得分:0)

您需要更改其他规则,以便它不会重写以“/ user /”开头的URI

RewriteCond %{REQUEST_URI} !^/user/
RewriteRule ^.*$ index.php [NC,L]

现在您可以使用您的规则重写/ user请求:

RewriteRule ^user/([a-zA-Z0-9]+)$ /user/?login=$1 [L]

除了您不希望括号中有R,因为它会重定向浏览器并更改地址栏中的内容。