Php Slim框架:没有尾部斜杠的主页路由
使用Slim 3,我希望我的主页URL是Php Slim框架:没有尾部斜杠的主页路由,php,.htaccess,routing,slim,Php,.htaccess,Routing,Slim,使用Slim 3,我希望我的主页URL是www.domain.com,而不是www.domain.com/ 此路由将所有主请求重定向到www.domain.com/ $app->get('/', function ($request, $response, $args) { }); 但是这个给了我错误 $app->get('', function ($request, $response, $args) { }); 我使用的是standard.htaccess: Rewrit
www.domain.com
,而不是www.domain.com/
此路由将所有主请求重定向到www.domain.com/
$app->get('/', function ($request, $response, $args) {
});
但是这个给了我错误
$app->get('', function ($request, $response, $args) {
});
我使用的是standard.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]
我认为这是一个共同的问题。这方面最好的解决方法是什么
编辑:
有什么诀窍或解决方法可以使主页url看起来像地址栏上没有斜杠一样?第一个
/
是HTTP规范所要求的。如果您在Firefox中使用LiveHTTPHeaders检查实际发送的标题,您会看到:
GET / HTTP/1.1
Host: stackoverflow.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:45.0) Gecko/20100101 Firefox/45.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-GB,en;q=0.5
Accept-Encoding: gzip, deflate
DNT: 1
Cookie: prov=6c390324-a9bb-439b-872e-ab428c1c136d; __cfduid=dd9fcf26e8242833656cda6fbe7719d851450684069; _ga=GA1.2.1110081223.1450684070
Connection: keep-alive
GET/HTTP/1.1
主机:stackoverflow.com
用户代理:Mozilla/5.0(Macintosh;英特尔Mac OS X 10.11;rv:45.0)Gecko/20100101 Firefox/45.0
接受:text/html、application/xhtml+xml、application/xml;q=0.9,*/*;q=0.8
接受语言:en-GB,en;q=0.5
接受编码:gzip,deflate
DNT:1
Cookie:prov=6c390324-a9bb-439b-872e-AB428C136D__cfduid=dd9fcf26e8242833656cda6fbe7719d851450684069_ga=GA1.2.1110081223.1450684070
连接:保持活力
从请求行(GET/HTTP/1.1
)中可以看到,浏览器会自动为您添加首字母/
,如的第5.2.1节所述:
请注意,绝对路径不能为空;如果原始URI中没有,则必须将其指定为“/”(服务器根)。这不是常见问题。域后的第一个尾随斜杠始终是必需的,并且生成的请求总是相同的。有很多网站,它们的主页没有使用尾随斜杠。StackOverflow本身就是一个例子。不,您的浏览器可能会选择不显示它,但它确实存在。它始终是请求URI的第一个字符。它不是域的一部分。