我的服务器上有一个名为people的文件夹,该文件夹中有一个index.php文件夹 我的网址就像 mydomain.com/people/?name=value1&age=value2
但我真的希望它看起来像 mydomain.com/people?name=value1&age=value2
答案 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
这里不是必需的,因为它代表查询字符串附加,默认情况下它已启用。