我制作了一个.htaccess
文件,用于转换路径查询中的URL。它确实有效,但是当我这样做时:localhost/login
我得到了这个localhost/login?path=login
。如何更改它以便我不会在URL中看到路径?
RewriteEngine On
RewriteCond $1 !^__init__\.php
RewriteRule ^(.*)$ __init__.php?path=$1 [L,QSA]
答案 0 :(得分:0)
login.php
是否作为物理文件存在?如果是这样,那么您需要确保禁用MultiViews
。请尝试.htaccess
文件顶部的以下内容:
Options -MultiViews
啊,那就是问题所在。 mod_dir,发出从有一个名为login
的文件夹
/login
到/login/
的外部重定向(即附加一个斜杠)。由于已经发布了重定向,因此您的内部重写现在变为外部重定向(因为已经设置了HTTP状态和Location
标头)。
您需要更改该目录的名称。或者禁用mod_dir的此功能(但这可能会导致进一步的问题)。例如,在.htaccess
文件的顶部:
DirectorySlash Off