[英]Symfony rewrite nginx
我正在使用 Symfony 3.4,並且我已經將我的 nginx 配置為直接使用http://example.org/my-route而不是http://example.org/app.php/my-route
server {
location / {
try_files $uri /app.php$is_args$args;
}
location ~ ^/(app_dev|config)\.php(/|$) {
# bla bla bla
}
location ~ ^/app\.php(/|$) {
# bla bla bla
}
}
但現在我想使用http://example.org/app.php/my-route將訪問我網站的用戶重定向到http://example.org/my-route
我嘗試創建一個新的重寫,但我得到了循環重定向
rewrite ^/app.php(.*) /$1 permanent;
我應該只在 app.php 中添加一個 header() 嗎?
if (strpos($request->getUri(), $request->getHost().'/app.php') !== false) {
$uri = str_replace($request->getHost().'/app.php', $request->getHost(), $request->getUri());
header('Location: ' . $uri, true, 301);
}
為避免循環,您需要確定/app.php
是原始請求,而不是由try_files
語句生成的相同 URI。
原始請求可以在$request_uri
變量中找到,可以使用if
塊進行測試。
例如:
if ($request_uri ~ ^/app.php(.+)$) { return 301 $1; }
請參閱有關使用if
注意事項。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.