删除URL中的GET查询

时间:2017-04-15 09:04:03

标签: .htaccess mod-rewrite

我制作了一个.htaccess文件,用于转换路径查询中的URL。它确实有效,但是当我这样做时:localhost/login我得到了这个localhost/login?path=login。如何更改它以便我不会在URL中看到路径?

的.htaccess

RewriteEngine On
RewriteCond $1 !^__init__\.php
RewriteRule ^(.*)$ __init__.php?path=$1 [L,QSA]

1 个答案:

答案 0 :(得分:0)

login.php是否作为物理文件存在?如果是这样,那么您需要确保禁用MultiViews。请尝试.htaccess文件顶部的以下内容:

Options -MultiViews
  

有一个名为login

的文件夹
啊,那就是问题所在。 mod_dir,发出从/login/login/的外部重定向(即附加一个斜杠)。由于已经发布了重定向,因此您的内部重写现在变为外部重定向(因为已经设置了HTTP状态和Location标头)。

您需要更改该目录的名称。或者禁用mod_dir的此功能(但这可能会导致进一步的问题)。例如,在.htaccess文件的顶部:

DirectorySlash Off