Code Web Work

.htaccess forcing www in urls

I’m starting to use this site as a resource for myself, because I use this stuff all the time, but not enough to commit it fully to memory.

That said, something that’s come up a lot recently is forcing www. in front of all urls on a site. Since all of my servers are Apache, with mod_rewrite enabled, this is no problem. Create an .htaccess file and drop this code into it:

RewriteEngine On
# force www in url
RewriteCond %{HTTP_HOST} !^www\.chrisrunnells\.com [NC]
RewriteRule ^(.*)$$1 [R=301,L]
# END force www in url

The other thing I’ve started doing is using 301 redirects when launching a new site. I can’t believe I didn’t use this years ago! Just add the following to the .htaccess file:

redirect 301 /oldpage.htm

And voila, the server redirects the user, and the search engines index the new page as the old one.

Code Web Work

Flash Slideshows in ZeppOS

So I find myself spending a lot of time trying to debug issues with Javascript and Flash when building sites out in ZeppOS. I’m posting this in the hopes that other people might find this useful!

Basically, I use the Flash Nifties XML Slideshow any time I need to do a quick image slideshow. To embed the swf file, I use the included SWFObject javascript for cross-browser compatible flash integration.

Now, the key to pulling this off successfully is to make sure the paths are all correct. Not only do we need to make sure the path to the XML file is good, but we need to make sure the paths to the images inside the XML file are valid as well. Trying to embed slideshow.swf by itself using the built in WYSIWYG editor doesn’t work, because the SWF can’t find the XML file. So, using the editor override method, I drop in the following code:

<script type="text/javascript">
var so = new SWFObject("/_Library/Media/Slideshow/slideshow.swf?file=_library/Media/slideshow/slideshow.xml", "gallery", "400", "300", "6", "#ffffff");

Alternatively, I could use addVariable technique to tell the slideshow where the XML file is (found here):
so.addVariable("file", "xml/images.xml");

However, since there’s only one variable, it’s easy enough to just add it directly to the uri string.

Now that slideshow.swf knows where it’s XML file is, I can test this by changing the bgcolor attribute in the XML file and seeing if it shows up. Once I’m sure the slideshow is reading from the XML file, I need to make sure the file paths to the images are correct. Since Flash reads the directory structure relative to the page it’s being called from (in this case, the root of the web site, index.asp), the path has to look like this:

<image img="_Library/Media/Slideshow/image1.jpg" />
<image img="_Library/Media/Slideshow/image2.jpg" />
<image img="_Library/Media/Slideshow/image3.jpg" />
<image img="_Library/Media/Slideshow/image4.jpg" />

Since ZeppOS is on a Windows platform, the paths are case-insensitive, but I add in capitalization anyway.

And that’s about it. Next time I’ll show a snippet of Javascript that I sometimes add to trick the browser into updating the XML file each time the page loads.