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.

General Questions /

General questions about getting started with SilverStripe that don't fit in any of the categories above.

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

URL Rewriting


Reply


4 Posts   2677 Views

Avatar
AJ_Trojan

Community Member, 3 Posts

10 July 2009 at 6:26am

I want to modify the .htaccess file so that the traffic directed to www.mysite.com/blog is redirected to www.mysite.com/blog/

I tried
RewriteCond %{HTTP_HOST} ^mysite.com/blog$
RewriteRule ^(.*)$ http://www.mysite.com/blog/$ /$1 [r=301,nc]

But nothin seems to work , please help.

Avatar
lestatron

Community Member, 7 Posts

20 July 2009 at 9:56pm

Edited: 20/07/2009 10:02pm

I'm having quiet similar problem.

While trying to do blog claim on technorati, it fails. It might be due to the reason that part of the url is being stripped by Technorati. www.domain.com/blog/ -> www.domain.com/blog
Silverstripe redirects www.domain.com/blog -> www.domain.com/blog/?url=/blog

Have anyone found a solution for this problem?

Avatar
lestatron

Community Member, 7 Posts

27 August 2009 at 11:41pm

Edited: 28/08/2009 12:01am

My workaround for the blog redirect problem
NB! Works only with apache server rewritter

Add the 2 following lines into .htaccess file after RewriteEngine On on line 10

...

RewriteCond %{REQUEST_URI} ^/([\w_-]+)([^/]{1})$
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]

....

Avatar
tim-lar

Community Member, 3 Posts

9 December 2014 at 12:24pm

Edited: 09/12/2014 12:25pm

For anyone seeing this issue on SilverStripe 3.1, I used the following code in my .htaccess to resolve the issue (as suggested by lestatron)

### SILVERSTRIPE START ###
<Files *.ss>
   Order deny,allow
   Deny from all
   Allow from 127.0.0.1
</Files>

<Files web.config>
   Order deny,allow
   Deny from all
</Files>

# This denies access to all yml files, since developers might include sensitive
# information in them. See the docs for work-arounds to serve some yaml files
<Files ~ "\.ya?ml$">
   Order allow,deny
   Deny from all
</Files>

ErrorDocument 404 /assets/error-404.html
ErrorDocument 500 /assets/error-500.html

<IfModule mod_rewrite.c>
   SetEnv HTTP_MOD_REWRITE On
   RewriteEngine On   

   RewriteRule ^vendor(/|$) - [F,L,NC]
   RewriteRule silverstripe-cache(/|$) - [F,L,NC]
   RewriteRule composer\.(json|lock) - [F,L,NC]

   ## Add these two lines to fix adding ?url= to urls where folders exist (e.g. like /blog)
   RewriteCond %{REQUEST_URI} ^/([\w_-]+)([^/]{1})$
   RewriteRule (.*) %{REQUEST_URI}/ [R=301,L]

   RewriteCond %{REQUEST_URI} ^(.*)$
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_URI} !\.php$
   RewriteRule .* framework/main.php?url=%1 [QSA]

   RewriteCond %{REQUEST_URI} ^(.*)/framework/main.php$
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule . %1/install.php? [R,L]
</IfModule>
### SILVERSTRIPE END ###