Laravel - Root Url suffix and route prefix inconsistency
We have a test site with laravel 4, which is on a subfolder on the server. So it is on thedomain/sitename
. This have caused big challenges with routing. The routes became wrong, like: thedomain/about
instead of thedomain/oursite/about
.
I added a Url root suffix'oursite'
by using the IlluminateRoutingUrlGenerator (following this suggestion).
All urls in the templates became correct, but they don't match anything in routes.php
which still treats it without the suffix.
I tried adding a route prefix . Now the urls typed into the address bar worked. But all the urls in the templates became wrong, for instance thedomain/oursite/oursite/about
.
So this seems inconsistent - why is the root Url suffix added to all the routes when they are echoed in the templates (like <a href="{{ route('about'); }}
) but they are interpreted without the suffix in routes.php!?
How can I get around that? I thought I was close to solving this. Or could I use route filter to redirect on every link?
laravel routing
add a comment |
We have a test site with laravel 4, which is on a subfolder on the server. So it is on thedomain/sitename
. This have caused big challenges with routing. The routes became wrong, like: thedomain/about
instead of thedomain/oursite/about
.
I added a Url root suffix'oursite'
by using the IlluminateRoutingUrlGenerator (following this suggestion).
All urls in the templates became correct, but they don't match anything in routes.php
which still treats it without the suffix.
I tried adding a route prefix . Now the urls typed into the address bar worked. But all the urls in the templates became wrong, for instance thedomain/oursite/oursite/about
.
So this seems inconsistent - why is the root Url suffix added to all the routes when they are echoed in the templates (like <a href="{{ route('about'); }}
) but they are interpreted without the suffix in routes.php!?
How can I get around that? I thought I was close to solving this. Or could I use route filter to redirect on every link?
laravel routing
Have you tried routing without rewriting index.php so your route would bethedomain/oursite/index.php/about
– adam
Nov 27 '18 at 20:47
No I haven't tried it. How is that enabled in Laravel?
– Galivan
Nov 27 '18 at 21:20
its part of your .htaccess or web.config if on IIS, it has nothing to do with laravel and everything to do with your web server configuration. Essentially you want index.php to show up before your route.
– adam
Nov 27 '18 at 22:29
add a comment |
We have a test site with laravel 4, which is on a subfolder on the server. So it is on thedomain/sitename
. This have caused big challenges with routing. The routes became wrong, like: thedomain/about
instead of thedomain/oursite/about
.
I added a Url root suffix'oursite'
by using the IlluminateRoutingUrlGenerator (following this suggestion).
All urls in the templates became correct, but they don't match anything in routes.php
which still treats it without the suffix.
I tried adding a route prefix . Now the urls typed into the address bar worked. But all the urls in the templates became wrong, for instance thedomain/oursite/oursite/about
.
So this seems inconsistent - why is the root Url suffix added to all the routes when they are echoed in the templates (like <a href="{{ route('about'); }}
) but they are interpreted without the suffix in routes.php!?
How can I get around that? I thought I was close to solving this. Or could I use route filter to redirect on every link?
laravel routing
We have a test site with laravel 4, which is on a subfolder on the server. So it is on thedomain/sitename
. This have caused big challenges with routing. The routes became wrong, like: thedomain/about
instead of thedomain/oursite/about
.
I added a Url root suffix'oursite'
by using the IlluminateRoutingUrlGenerator (following this suggestion).
All urls in the templates became correct, but they don't match anything in routes.php
which still treats it without the suffix.
I tried adding a route prefix . Now the urls typed into the address bar worked. But all the urls in the templates became wrong, for instance thedomain/oursite/oursite/about
.
So this seems inconsistent - why is the root Url suffix added to all the routes when they are echoed in the templates (like <a href="{{ route('about'); }}
) but they are interpreted without the suffix in routes.php!?
How can I get around that? I thought I was close to solving this. Or could I use route filter to redirect on every link?
laravel routing
laravel routing
asked Nov 27 '18 at 18:49
GalivanGalivan
82011426
82011426
Have you tried routing without rewriting index.php so your route would bethedomain/oursite/index.php/about
– adam
Nov 27 '18 at 20:47
No I haven't tried it. How is that enabled in Laravel?
– Galivan
Nov 27 '18 at 21:20
its part of your .htaccess or web.config if on IIS, it has nothing to do with laravel and everything to do with your web server configuration. Essentially you want index.php to show up before your route.
– adam
Nov 27 '18 at 22:29
add a comment |
Have you tried routing without rewriting index.php so your route would bethedomain/oursite/index.php/about
– adam
Nov 27 '18 at 20:47
No I haven't tried it. How is that enabled in Laravel?
– Galivan
Nov 27 '18 at 21:20
its part of your .htaccess or web.config if on IIS, it has nothing to do with laravel and everything to do with your web server configuration. Essentially you want index.php to show up before your route.
– adam
Nov 27 '18 at 22:29
Have you tried routing without rewriting index.php so your route would be
thedomain/oursite/index.php/about
– adam
Nov 27 '18 at 20:47
Have you tried routing without rewriting index.php so your route would be
thedomain/oursite/index.php/about
– adam
Nov 27 '18 at 20:47
No I haven't tried it. How is that enabled in Laravel?
– Galivan
Nov 27 '18 at 21:20
No I haven't tried it. How is that enabled in Laravel?
– Galivan
Nov 27 '18 at 21:20
its part of your .htaccess or web.config if on IIS, it has nothing to do with laravel and everything to do with your web server configuration. Essentially you want index.php to show up before your route.
– adam
Nov 27 '18 at 22:29
its part of your .htaccess or web.config if on IIS, it has nothing to do with laravel and everything to do with your web server configuration. Essentially you want index.php to show up before your route.
– adam
Nov 27 '18 at 22:29
add a comment |
1 Answer
1
active
oldest
votes
Alternative solution: maybe use subdomain like sitename.thedomain.com
instead of subfolder. If your server provider not support subdomains, change provider :P
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53506291%2flaravel-root-url-suffix-and-route-prefix-inconsistency%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Alternative solution: maybe use subdomain like sitename.thedomain.com
instead of subfolder. If your server provider not support subdomains, change provider :P
add a comment |
Alternative solution: maybe use subdomain like sitename.thedomain.com
instead of subfolder. If your server provider not support subdomains, change provider :P
add a comment |
Alternative solution: maybe use subdomain like sitename.thedomain.com
instead of subfolder. If your server provider not support subdomains, change provider :P
Alternative solution: maybe use subdomain like sitename.thedomain.com
instead of subfolder. If your server provider not support subdomains, change provider :P
answered Nov 27 '18 at 18:54
Kamil KiełczewskiKamil Kiełczewski
12.5k86896
12.5k86896
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53506291%2flaravel-root-url-suffix-and-route-prefix-inconsistency%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Have you tried routing without rewriting index.php so your route would be
thedomain/oursite/index.php/about
– adam
Nov 27 '18 at 20:47
No I haven't tried it. How is that enabled in Laravel?
– Galivan
Nov 27 '18 at 21:20
its part of your .htaccess or web.config if on IIS, it has nothing to do with laravel and everything to do with your web server configuration. Essentially you want index.php to show up before your route.
– adam
Nov 27 '18 at 22:29