微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

.htaccess 重写包含文件名的 URL

如何解决.htaccess 重写包含文件名的 URL

我想重写我的网址,让我的用户从此网址 /api/usermanager?type=2 访问页面 /signup/firststep

这不会改变浏览器栏上可见的地址。

我试过这个:

RewriteEngine On
RewriteRule ^(signup/firststep)$ api/usermanager?type=2 [NC,L]

问题是拥有 signup.PHP 文件会将我重定向到该文件

我完整的.htaccess

ErrorDocument 404 /404

RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^isexistinguser/username/(.*)$ api/usermanager?type=0&username=$1 [NC,N]
RewriteRule ^isexistinguser/email/(.*)$ api/usermanager?type=1&email=$1 [NC,L]

RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(signup/firststep)$ api/usermanager?type=2 [NC,L]

Options +MultiViews
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.PHP [NC,L]

有人可以帮我吗?

谢谢

解决方法

根据您展示的样品,您可以尝试以下操作吗? 在测试您的网址之前,请务必清除浏览器缓存。

ErrorDocument 404 /404
Options -MultiViews
RewriteEngine ON
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^isexistinguser/username/(.*)$ api/usermanager?type=0&username=$1 [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^isexistinguser/email/(.*)$ api/usermanager?type=1&email=$1 [NC,L]


RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(signup/firststep)$ api/usermanager?type=2 [NC,L]


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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。