删除url中的斜杠(不是斜杠)

时间:2014-09-16 05:18:43

标签: php .htaccess url

我的服务器上有一个名为people的文件夹,该文件夹中有一个index.php文件夹 我的网址就像 mydomain.com/people/?name=value1&age=value2

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

2 个答案:

答案 0 :(得分:3)

因为"人和#34;是一个文件夹,您的脚本位于该文件夹中,唯一可行的方法是关闭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]

答案 1 :(得分:1)

使用mod_rewrite你可以这样做:

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

QSA这里不是必需的,因为它代表查询字符串附加,默认情况下它已启用。