我正在尝试设置.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
提前致谢。
答案 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]