Category: Tutorials

Screenshot of Cloudflare Page Rule for Redirection of permalinks

Redirecting WordPress pages and posts after changing the TLD extension

This post will help you understand how to redirect WordPress pages and posts when you simply change the TLD of your site in the database without actually redirecting between two site instances with two different TLDs. There should be no reason to launch an entirely new site on a new instance at your host, when you can simply use the Page Rules setting in Cloudflare to manage one to one redirects from the old TLD extension to the new TLD extension for the same domain name.

Read more

WordPress Networks, MediaTemple, Plesk and bouncing email

Over the past couple of days, I’d gotten a few phone calls from prospective clients who told me they were using the contact form on my Digital Strategy Works website to submit an inquiry about our services, but they hadn’t heard back from me. Huh, I wondered. Really? How could this be?

I did some preliminary investigating and there didn’t seem to be a problem with the Contact Form 7, which I use for my forms. WordPress itself and my server were running normally. After clicking around, it was time to test the form for myself.

I sent myself an email through the form and got back the following (removed the @ symbol to obfuscate address):

Hi. This is the qmail-send program at
I'm afraid I wasn't able to deliver your message to the following addresses.
This is a permanent error; I've given up. Sorry it didn't work out.

This address no longer accepts mail.

--- Below this line is a copy of the message.

Return-Path: <tonyzeoli(at)>
Received: (qmail 25887 invoked by uid 110); 13 Jan 2012 21:47:22 -0500
Delivered-To: 1-admin(at)
Received: (qmail 25882 invoked by uid 10001); 13 Jan 2012 21:47:22 -0500
To: admin(at)
Subject: tonyzeoli(at)
X-PHP-Originating-Script: 10001:class-phpmailer.php
Date: Sat, 14 Jan 2012 02:47:22 +0000
From: "tonyzeoli(at)" <tonyzeoli(at)>
Message-ID: <>
X-Priority: 3
X-Mailer: PHPMailer 5.1 (
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="UTF-8"

From: tonyzeoli(at) <tonyzeoli(at)>
Subject: test

Message Body:
This mail is sent via contact form on Digital Strategy Works

I though, that’s odd. The qmail-send program should be sending an email from the server to the email address I’d set in the admin panel of the Contact Form 7 plugin. But, I was getting a bounce back to the email address I’d tested in the form, saying that the address I was sending to was undeliverable. Why was it undeliverable, when I get email to my address all the time?

There were a couple of reasons. First, I am using Google’s hosted mail service to handle mail for a couple of my domains: and Second, when I set up my WordPress network on MediaTemple VPS, I needed to add a “domain alias” for each domain name that would be included in the network. While I added and to the MediaTemple administration panel, you’re required to access the root domain of your WordPress network and add those domain aliases.

My root domain is and my domain aliases were added to that account in my control panel. The image below is a screenshot of the control panel. Under “Websites and Domains,” click the “Show Advanced Operations” text link at the mid point of the page, which will drop down an extended set of options. Highlighted in the red square is the link to “Domain Aliases,” where you can add or manage all of the alias domains you’re going to use in your WordPress network. Remember, just because you’ve added them in your MediaTemple account center, does not mean that they will work. They must be added as a domain alias in your primary domain’s control panel or none of your domains will resolve correctly in your network.

Image of control panel otherwise known as a "Cpanel" for Plesk clients using MediaTemple web hosting services
Websites and Domains admin in Plesk Cpanel

After you have clicked on the Domain Alias link, you can add the domain aliases. In the image below, you can see a list of domain aliases that I have added so that the domain mapping plugin for WordPress can redirect to each domain alias assigned under the primary domain.

Image of the domain aliases administration area in Plesk CPanel if using MediaTemple hosting
Plesk CPanel Domain Aliases administration panel

Now, here’s what I found that was causing the inadvertent mail issue. Since I’m using Gmail hosted mail services for two of my domains, and, I am not using the qmail feature of the server to send email directly from the server. The two domains in question, and inherit the local functionality of the qmail server, but we don’t want that, because my email DNS entries are listed as Google’s and not MediaTemple’s. Aha! Therein lies the problem. The domains are not accepting mail, because they are set to use the local mail server and not the 3rd party Google hosted mail server!

If you are hosting your email through a 3rd party service and not using the local mail feature, you’re going to get this issue where mail cannot be delivered to the domain, because the server is trying to use local mail and not the Gmail system. How do you fix that? Easy, just click on any one of the domains that you’re hosting mail for using Google or another service, and then turn off the local mail service. Problem solved!

Netmix Mail Service Domain Alias CPanel Plesk
Netmix Mail Service Off

Solving the Omniture Brightcove integration mystery!

My work as Lead Developer in the Reese Felts Digital Newsroom at UNC Chapel Hill School of Journalism and Mass Communication, at times, requires investigating and employing various web and mobile technologies to keep our student-run digital news site,, humming along. When planning for this project, two mission critical objectives were to find best of class technologies to support online video distribution and analytics. On the video side, we tested a few options, like Vimeo, YouTube, and a freemium service from a provider of open-source streaming video technology, Kaltura, While these tools are all excellent for their intended uses, we found that market leader, Brightcove, worked best to serve our needs on both the player creation and analytics front.

For web and mobile analytics, we chose Adobe’s Omniture Site Catalyst product, a premium analytics tool that integrates with many 3rd party services, including Brightcove. Site Catalyst is a powerful program and there is a steep learning curve for the novice user. The documentation exists to guide you through set-up and integration, but I found few, if any, real world examples of how to connect Brightcove videos spins with Site Catalyst 15 (version 15) media tracking.

After a frustrating few weeks looking up and down the web for an answer and working with Adobe’s Client Care, I finally solved the puzzle. Here it is, step-by-step. This tutorial assumes you have Video tracking enabled in Omniture Site Catalyst and that you are returning results under Video – Video Reports, as shown below.

As you can see, Site Catalyst 15 is reporting the Brightcove Player ID and the Brightcove Video ID, but not the title of the video. The only way to fetch the title and match it with the video ID, is to set up a SAINT Classification. I learned that it’s all based on uploading an Excel spreadsheet in .tab delimited format. The spreadsheet has a few columns and rows of information Site Catalyst 15 needs to parse for the classification to deliver your data to in the report suite. I’ll get into that a little later. Here’s what you need to do:

1. Add a Conversion Variable to track your Videos. You should already have Media Tracking enabled. If not, you will have to contact Adobe Site Catalyst Client Care to set it up and add the media tracking code to the javascript file that sits in your top level directory. We named ours “Video.”

Click Edit Settings, then Conversion, then Conversion Variables.

Now add your variable, Videos, by selecting the Add New text link at the bottom right of the screen.

You can see that we’ve created a variable called “Videos” and it has an eVar of 4. After this step, you should start seeing reporting, like in the first screen at the top of this post.

Next, we have to match the video title with the Brightcove video ID. We’ll do that by adding a SAINT Classification.

2. Add a SAINT Classification, otherwise known as a “Conversion Classification” to your Site Catalyst report.

In your Site Catalyst 15 Report Suite, select Edit Settings, then Conversion, and then Conversion Classifications. If you don’t remember how to access your Report Suite, click Admin on the green top navigation menu bar, then Admin Console, and then Report Suites.

Select “Videos” from the drop down menu. This is the variable you started with.

Then mouse over “Videos” and whatever eVar is given. In the picture below, we’ve already added the classification, “Brightcove Video Name.”

Here it is again, blown up a bit.


Now that we have our SAINT Classification enabled, we’ll need to take the next step.

3. Download the SAINT Classification .tab delimited spreadsheet. 

Navigate to Admin, then SAINT Classifications.


Select “Videos” from the drop down menu on the page.

Then click the “Download” link to download the SAINT Classification file for “Videos.” The file name will be, “SiteCatalyst” You can rename this file later if you need to. It shouldn’t matter on upload, which we’ll cover later.

Open the spreadsheet with Excel and you will see your SAINT Classification name. This is where you will put the Video Title. To the left, there is a column named “Key.” Here you will put the Brightcove Video ID. The “Key” is actually the Brightcove Video ID from the the Video Reporting panel. I didn’t get this at first. I wasn’t sure what the “Key” was. It’s simply whatever is returned by the Video reporting system from Brightcove. That’s what you will use to match with the Brightcove Video Name.

Note: I found that trying to save a .tab delimited file on a Mac is problematic. Unfortunately, you may need a PC for this, unless you know of another solutions. I tried many times to add my values and save it in .tab delimited on a Mac. Each time I uploaded the file to Site Catalyst, it returned an error. It was only when I saved my file using Virtual Box and Excel in Windows, that the file saved correctly. I told this to the Omniture rep, as it’s a major bug, but who knows if they are going to fix it or not.

4. Add your Brightcove Video ID’s to the Excel sheet.

To get your Brightcove Video ID’s, you can navigate to, log-in, and then access your Analytics panel. Select “Video Engagement,” set your date range, then click the arrow for Export. Download by selecting Video Engagement (our screen capture did not get the full drop down on the right, sorry). This will download a .csv file with all the information displayed. You will only need the Title and the Video ID.

Copy and pasted the Title(s) and Video ID into your SAINT Classification file. Be careful NOT to remove any of the value set in the sheet. They are important.

You can see in the screenshot that I have appended “Brightcove3:” in front of the Video ID in the “Key” column. Omniture Client Care said that I did not have to do this, but I’m going on the assumption that the “Key” value should be the same value that is displayed in the Video Reporting section. It is working correctly for me.

To append a word in front of another in Excel, there are various tutorials on the web. You have to add a column to the left of your ID number and put “Brightcove 3:” or whatever you’re returning in your analytics report. Then, add another column to the left of that one and set this function: =$A5+$B5 (you may have different columns and rows). This should combine your columns.

Then, you want to copy the new column, copy it, then select Edit and then choose Paste Special. A dialog box will open. Select “Values.” This will paste what you copied, while stripping out the functions and just leaving the text.

You’ll want to save your file in .tab delimited format. Remember my note above. Saving in .tab delimited on a Mac can cause an error in the next step. If you can do it on a PC, that would be better.

5. Upload your SAINT Classification file to Site Catalyst 15.

Navigate back to the Admin link on the green navigation menu. Select SAINT Classifications. Once you’re on the page, select “Videos,” which for us also says “Converstion 4” or the eVar variable we noted earlier in this tutorial. Click “Choose File” and then browse for your file and upload. Wait 24 to 72 hours, depending on the amount of information you have to see results.

6. View your results.

Navigate to your Site Catalyst 15 main dashboard. Under Videos, then Video Reports, you should see your SAINT Classification reporting your Brightcove Video Title!

I hope this tutorial is helpful to those who are frustrated by this process. One more thing to remember: this process is manual. If you add new videos to Brightcove, you’re going to have to do this all the time, because you have to add the Video ID as a the “Key” value, in order for it to track.