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.

Archive

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

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

change the path for silverstripe-links?


Reply

4 Posts   1324 Views

Avatar
boenner

7 July 2008 at 7:59pm Community Member, 2 Posts

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

8 July 2008 at 12:55pm Forum Moderator, 5511 Posts

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

8 July 2008 at 6:35pm Community Member, 2 Posts

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

14 July 2008 at 6:09pm Administrator, 685 Posts

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.