Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

We've moved the forum!

Please use forum.silverstripe.org for any new questions (announcement).
The forum archive will stick around, but will be read only.

You can also use our Slack channel or StackOverflow to ask for help.
Check out our community overview for more options to contribute.

Archive /

Our old forums are still available as a read-only archive.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo

change the path for silverstripe-links?


Go to End


4 Posts   1655 Views

Avatar
boenner

Community Member, 2 Posts

7 July 2008 at 7:59pm

is there an easy way to make silverstripe use another directory for internal links, than the directory it is installed in? For example: silverstripe is installed in "silverstripe_cms" - but instead of "/silverstripe_cms/home/" i want the links to use "/silverstripe/home/" ...

Avatar
Willr

Forum Moderator, 5523 Posts

8 July 2008 at 12:55pm

You would need to write a custom .htaccess rewrite rule. Not for beginners but you might find these helpful

http://www.yourhtmlsource.com/sitemanagement/urlrewriting.html
http://www.askapache.com/htaccess/mod_rewrite-tips-and-tricks.html
http://corz.org/serv/tricks/htaccess2.php

For your case you would need to do something like this. I think :P

RewriteRule ^(.*)/silverstripe/(.*)$    $1/silverstripe_cms/$2 [L,R=301]

Avatar
boenner

Community Member, 2 Posts

8 July 2008 at 6:35pm

that's my problem - there is no mod_rewrite on the webspace i am currently working on (it's a cheap one and the hoster won't enable ist). Therefore i'm trying to find a way to run silverstripe without apache-urlrewriting.
is there someone who did this already or can you give me a little hint how to do it "the best way"? ;)

Avatar
Sam

Administrator, 690 Posts

14 July 2008 at 6:09pm

Well, all of the URLs internally map to sapphire/main.php?url=(friendly url)

You could try making a small file such as p.php in your site root:

You could then access URLs:

http://www.mysite.com/p.php/Security/login

The p.php script would need to be a modified version of main.php, that manually parses the contents of the $_SERVER variables and then passes control to Director::direct(). It would also need to do things like chdir('sapphire') to ensure that includes and relative file references work.

You would probably want to use something like Director::setBaseUrl("http://www.mysite.com/p.php/") to ensure that all the URLs matched up properly.

It's not going to a simple matter of flipping a switch, but it would be possible.