Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 删除url中的斜杠(非尾随斜杠)_Php_.htaccess_Url - Fatal编程技术网

Php 删除url中的斜杠(非尾随斜杠)

Php 删除url中的斜杠(非尾随斜杠),php,.htaccess,url,Php,.htaccess,Url,我的服务器上有一个名为people的文件夹,该文件夹中有index.php 我的url类似于mydomain.com/people/?name=value1&age=value2 但是我真的希望它看起来像mydomain.com/people?name=value1&age=value2因为“people”是一个文件夹,而您的脚本就在这个文件夹中,所以只有关闭DirectoryIndex,它才能工作,它会自动重定向浏览器,以包含文件夹请求的尾随斜杠 注意,是一个尾随斜杠,URI以/people/

我的服务器上有一个名为people的文件夹,该文件夹中有index.php 我的url类似于mydomain.com/people/?name=value1&age=value2

但是我真的希望它看起来像mydomain.com/people?name=value1&age=value2

因为“people”是一个文件夹,而您的脚本就在这个文件夹中,所以只有关闭
DirectoryIndex
,它才能工作,它会自动重定向浏览器,以包含文件夹请求的尾随斜杠

注意,是一个尾随斜杠,URI以
/people/
结尾。
及其后的所有内容都是查询字符串

关闭
DirectoryIndex
可能非常危险,因为它用于防止信息泄露。如果文件夹上没有尾随斜杠,请求文件夹将导致显示该文件夹的内容,即使您有目录索引。换句话说,
index.php
将被忽略,取而代之的是,您将得到一个所有文件夹内容的列表。因此,为了防止这种情况发生,您必须在内部添加斜杠

因此,在文档根目录的htaccess文件中类似这样的内容:

DirectoryIndex Off

RewriteEngine On

RewriteCond %{THE_REQUEST} \ /+people/\?
RewriteRule ^ /people [L,R]

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$ /$1/ [L]
由于“people”是一个文件夹,而您的脚本也在该文件夹中,因此,只有关闭
DirectoryIndex
,它会自动重定向浏览器,以便为文件夹的任何请求包含尾部斜杠

注意,是一个尾随斜杠,URI以
/people/
结尾。
及其后的所有内容都是查询字符串

关闭
DirectoryIndex
可能非常危险,因为它用于防止信息泄露。如果文件夹上没有尾随斜杠,请求文件夹将导致显示该文件夹的内容,即使您有目录索引。换句话说,
index.php
将被忽略,取而代之的是,您将得到一个所有文件夹内容的列表。因此,为了防止这种情况发生,您必须在内部添加斜杠

因此,在文档根目录的htaccess文件中类似这样的内容:

DirectoryIndex Off

RewriteEngine On

RewriteCond %{THE_REQUEST} \ /+people/\?
RewriteRule ^ /people [L,R]

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.*[^/])$ /$1/ [L]
使用以下方法,您可以这样做:

RewriteEngine On
RewriteRule ^(.+)/$ $1 [L,R,QSA]
QSA
此处不是必需的,因为它代表查询字符串附加,并且默认情况下处于打开状态。

使用此选项,您可以执行以下操作:

RewriteEngine On
RewriteRule ^(.+)/$ $1 [L,R,QSA]

QSA
此处不是必需的,因为它代表查询字符串追加,并且默认情况下处于打开状态。

了解了一些新内容。了解了一些新内容。