Php htaccess url重写,但执行相同的页面

Php htaccess url重写,但执行相同的页面,php,.htaccess,Php,.htaccess,我有一个像 http://example.com/folder1/folder2/admin_login.php 以上是活动页面。但我想显示下面的url,而不是上面的,但功能相同的页面 http://example.com/folder1/folder2/login 所以问题是在浏览器中显示url-2,但执行url-1 我在htaccess文件中尝试了此代码 RewriteEngine on RewriteRule ^folder1/folder2/admin_login.php$ htt

我有一个像

http://example.com/folder1/folder2/admin_login.php
以上是活动页面。但我想显示下面的url,而不是上面的,但功能相同的页面

http://example.com/folder1/folder2/login
所以问题是在浏览器中显示url-2,但执行url-1

我在htaccess文件中尝试了此代码

RewriteEngine on
RewriteRule ^folder1/folder2/admin_login.php$  http://example.com/folder1/folder2/login [NC,L]

当我将url-1放入浏览器地址栏时。它将转换为url-2,但显示未找到的
页面

您已将其翻转。您希望第二个url位于地址栏中。这意味着您必须链接到该url。当带有该url的请求到达服务器时,服务器必须在内部将该url转换为工作url。除此之外,您不应该将完整url作为重写目标,因为这会导致规则作为重定向而不是内部重写

以下规则应该可以做到这一点:

RewriteRule ^folder1/folder2/login/?$ /folder1/folder2/admin_login.php [L]

你的最后一句话对吗?你把url-1放在浏览器里了吗?你们为什么这么做?@Sharky我的意思是说浏览器地址栏好的,我已经更正了。不,浏览器/地址栏中没有问题,我的评论是关于你们是否在地址栏中放置url-1或url-2。您在地址栏中键入了什么?Url-1还是Url-2?如果您键入Url-1,那么为什么?不,我想执行
admin\u login.php
,它有登录页面,但地址栏应该显示
/admin
,而不是
admin\u login.php
,这样文件名就可以隐藏起来。我对使用htaccess是新手。请为我提供一些网址(网站),以便更好地学习。它的使用方法。
[NC,L]
[L]
之间有什么区别请阅读。谷歌搜索“mod_rewrite example”应该会列出一系列常见问题的例子。
NC
标志忽略url中的大小写。有了这个标志,
example.com/folDER1/FoLdEr2/LOGIN也会匹配,而没有这个标志则更严格。我发现通常没有理由使用它。