重定向/忘记密码/ 12345 - > /forgot-password.php?reset_key=12345

时间:2013-12-29 07:58:52

标签: php regex apache .htaccess mod-rewrite

我正在尝试设置.htaccess以允许干净的密码重置网址,如下所示:

向用户发送如下链接:

www.url.com/forgot-password/12345

这应该改写为:

www.url.com/forgot-password.php?reset_key=12345

(仅适用于forgot-password.php的此页面 - 我希望保持其他页面的查询字符串不变。)

到目前为止,我有:

RewriteCond %{REQUEST_URI} !forgot-password
RewriteCond %{QUERY_STRING} (.)
RewriteRule ^(.*)$ /forgot-password.php?reset_key=$1 [L,QSA]

但它不起作用。当我删除第二行时,它似乎正确触发,但它没有正确传递?reset_key $_GET参数。

仅供参考,在我的.htaccess之上,我已经拥有以下内容:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

提前致谢。

1 个答案:

答案 0 :(得分:2)

保持你的.htaccess像这样:

Options +FollowSymLinks -MultiViews
RewriteEngine on

RewriteRule ^forgot-password/(.+)$ /forgot-password.php?reset_key=$1 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*)$ $1.php [L]