Web Hosting Forum | Lunarpages


*
Welcome, Guest. Please login or register.
Did you miss your activation email?



Login with username, password and session length
February 09, 2012, 05:56:57 PM

Pages: [1] 2   Go Down
  Print  
Author Topic: Preventing hotlinking to WMV files  (Read 16448 times)
JimBrown
Knowing enough to be dangerous!
Jabba the Hutt
*****
Offline Offline

Posts: 743



WWW
« on: December 26, 2004, 08:30:13 PM »

The original message has been updated and reposted later in this thread. Please scroll down.

(When the forum software was updated, the original message had all brackets '(' and ')' changed to '&##;')

Thanks,
...jim
« Last Edit: August 15, 2005, 07:49:26 AM by JimBrown » Logged

JimBrown
Knowing enough to be dangerous!
Jabba the Hutt
*****
Offline Offline

Posts: 743



WWW
« Reply #1 on: January 25, 2005, 01:10:39 PM »

Edited the last bit above regarding the .htaccess file.

When I originally set this up, it worked find with just "deny from all" in the .htaccess file. However, I recently discovered that I could link directly to the files again. My only guess is that something changed in the Lunarpages Apache configuration, and that the .htaccess now needs to be as above.

Regards,
...jim
Logged

JimBrown
Knowing enough to be dangerous!
Jabba the Hutt
*****
Offline Offline

Posts: 743



WWW
« Reply #2 on: February 12, 2005, 10:00:44 AM »

A quick update.

As I mentioned near the beginning of the first message, I've only been playing with PHP and web site programming since June '04.

I've just discovered a problem with this whole setup. It works fine for 99% of visitors, but does not work for the other 1%.

Why? Because I secretly hate them. Ok, no, that's not the reason. Actually, I recently discovered that there are users who go through proxy servers, and that some of those proxy servers will rotate through a bunch of IP's during a single visit to a web site. AOL is a fine example of this.

So what happens is that a visitor enters my site and their IP is logged. The visitor then goes to another page on my site, but because of the rotating proxy server, appears to be coming from a different IP. Since the new IP is not logged, they are bunted back to the home page.

I'd be a bit annoyed if that kept happening to me. So far, I've receive feedback from three people that this happens to them. Took me a couple of days to figure out what was going on.

I'm now on my fourth day of recoding my site to accomodate this newly discovered (for me) problem.

I'll post back when I've got it solved.

Still having fun,
...jim
Logged

JimBrown
Knowing enough to be dangerous!
Jabba the Hutt
*****
Offline Offline

Posts: 743



WWW
« Reply #3 on: March 12, 2005, 07:51:11 AM »

I have completly redone the original message at the beginning of this thread. The old method just wasn't good enough. This new method appears to be working quite well on my site.

Have fun!
...jim
Logged

JimBrown
Knowing enough to be dangerous!
Jabba the Hutt
*****
Offline Offline

Posts: 743



WWW
« Reply #4 on: August 14, 2005, 07:12:02 AM »

A few weeks ago, it dawned on me that I could not use the usual .htaccess method of checking the referrer to prevent hotlinking to my .WMV video files, of which I have a substantial number. The reason for this is that using the .htaccess method prevents Windows Media Player from getting the file should WMP be invoked by Internet Explorer when the link to the file is clicked. This occurs on my Windows XP system with IE6. Why? Because Windows Media Player does not send any referrer information, which is what the .htaccess method relies on.

(There is more information regarding how WMP/IE6 behaves in this thread: http://www.lunarforums.com/forum/index.php?topic=22528.msg173975#msg173975 )

Since I couldn't use .htaccess to prevent hotlinking, and a quick search of the 'net didn't turn up anything, I decided to see if I could write something in PHP to take care of this little problem.

I have succeeded. A couple of people asked if would share how I did it. Not a problem, I like to share things. But, be warned, this is a kludge of the first order. It's not perfect, but it will do the job. I should also mention that I have been messing with PHP only since last June (2004), so there may be better ways to do some of the stuff I'm doing. However, I have been programming off and on since the mid '80's.

The Overview (or, what the heck am I doing, and why?)

I knew that PHP had functions to read in files and spit them out to a waiting browser. I also knew that PHP does not care what is in a .htaccess file. Armed with those two bits of information, I knew I could devise a routine that could read in the file and send it out, and that I could use a .htaccess file containing "deny from all" in the folder containing the video files to keep others out. What I also needed was a way to track who was doing what on my site. That's where MySQL comes in.

When a user hits my home page, a PHP routine checks to see if a non-persistant cookie containing a session ID has been set. If not, it generates a unique session ID and sticks it into a database record, along with the name of the page that is being sent, as well as the current time, twice, once as the start time, and once as the current time. At the same time, a non-persistant cookie is set containing the generated sessionID. A redirect is then done to a page that checks to see if the cookie exists. If it does, another redirect is done back to the home page. If not, an error page is displayed.

At the top of all my other pages is another PHP routine that grabs the session ID from the cookie and checks to see if it is already in the database. If it is not, then a redirection is done to the home page (Hey! I've got my own way to force people to enter through the front door!) If the session ID is known, then the current time is updated, as well as the name of the page being sent, and the page continues to load.

When a user clicks on a link to a video file on my video index page, the link goes to another PHP file that does the work. Passed along to the video viewing page is the video file number, not the video file name. The information regarding the video file is contained in a database table. This give me some flexibility and ease of coding, and also hides the video file name.

When the video viewing page runs, it first checks to see if the session ID is known, redirecting to the home page if not. If it is known, then it updates the users record with the current time and the name of the file requested. It then gets the information for the requested file from the database, checks to see if the file exists, and if so, sends a few headers followed by the file data itself. The trick here is that it uses PHP to read in the file, and send the data to the waiting browser.

Now for the interesting part. When IE6 sees that it is a WMV file arriving, it stops the transfer and passes the URL to Windows Media Player. Windows Media Player then does an HTTP GET for that URL, which is the video viewing file and video number, not the video file itself. The video viewing file does the same checks again, but because it does not care about the referrer information, the file will again be sent using PHP file read and send functions.

If someone bookmarks the URL that points directly to the video viewing file, along with the video number, when they eventually come back to it, the video viewing file will not find them in the database, and will redirect them to the home page. If a web site includes a link directly to the same URL, anyone clicking on that link will not be known either, and will be redirected to the home page.

A cron job runs another PHP file that cleans up the user tracking table. It looks for records that are older than 30 minutes (the aging time can be changed) and deletes them.

The Details (or, great. So, just how do I do this magic anyway?)

First up, the tables needed to do this. Two of them, in fact.

The first table stores the information about your video files. I've called this table "gallery_video" on my system.

gallery_video
Code:
VideoID int(2) Unsigned Primary Index
VideoActive char(3)
VideoTitle varchar(255)
VideoDate Varchar(255)
VideoFile varchar(255)
VideoTime varchar(5)
VideoSize varchar(6)
VideoViews int(5) unsigned

An explanation of each field:

VideoID: The ID number of each video.

VideoActive: If you want to remove a video from the server, but leave its information in the table, this can be set to "no". Set to "yes" otherwise.

VideoTitle: User friendly name for the video.

VideoDate: User friendly date for the video. Useful if the file date is not the date you wish users to see.

VideoFile: The actual video file name, without the extension.

VideoTime: User friendly video length in min:sec (00:00)

VideoSize: User friendly video size (I use 00.0mb)

VideoViews: Number of times video has been viewed. (A nice byproduct of this whole thing.)

The second table stores the information about each visitor. I've called this table "user_session"

user_session
Code:
SessionID varchar(255) Primary Index
UserIP varchar(15)
UserHost Varchar(255)
UserStart datetime
UserCurrent datetime
UserPage varchar(255)

An explanation of each field:

SessionID: A unique alphanumeric id code for each user.

UserIP: The users IP address.

UserHost: The users host name. Not used in this example, but could be useful.

UserStart: The date and time the user first entered the site.

UserCurrent: The date and time the user last requested a page or file.

UserPage: The page or file the user last requested.

Now for the folder and file layout. This layout is for this example. If you wish to use a different layout, by all means do so. Just remember to adjust the paths that are referenced within the files themselves.

File/Folder layout
Code:

/(root)
  connect.php
  /crons
    sessionmaint.php
  /public_html
    index.php
    entry.php
    /pages
      video.php
      viewvideo.php
    /video
    /thumbs

WMV video files are stored in the /video folder. Thumbnails for the video files are stored in the /thumbs folder. In this example, they must be JPG files and have the same basename as the WMV file.

Continued next message...

(Edit: updated link to other thread.)
« Last Edit: February 28, 2008, 09:24:27 AM by JimBrown » Logged

JimBrown
Knowing enough to be dangerous!
Jabba the Hutt
*****
Offline Offline

Posts: 743



WWW
« Reply #5 on: August 14, 2005, 07:12:40 AM »

Next, the "connect" php file, which connects to the database, and contains a couple of functions. This file contains your database username/password so it should reside in the root directory, above public_html, so that it can not be accessed by a browser. It is included at the top of each web page via a "require" statement.

(Note: I've indented the beginning of every line in the following code examples. If you see a line that starts flush left, it has wrapped from the previous line.)

connect.php
Code:
<?php

$server "localhost";
$dbUser "<dbusername>";
$dbPass "<dbpassword>";
$db "wmvhotlink_test";

$dbConn mysql_connect($server,$dbUser,$dbPass) or die("Could not connect : " mysql_error());
mysql_select_db($db) or die("Could not select database");

function UserSession($SessionID$UserPage) {

$sql "SELECT `UserIP` FROM `user_session` WHERE `SessionID` = '$SessionID'";
$result mysql_query($sql) or die("Session query failed : " mysql_error());

if (mysql_num_rows($result) == 1) {

list($UserIP) = mysql_fetch_row($result);
if ($UserIP == "") {

$UserIP $_SERVER["REMOTE_ADDR"];
$UserHost gethostbyaddr($UserIP);
$UserStart strftime("%Y-%m-%d %H:%M:%S");
$UserCurrent $UserStart;

$update "UPDATE `user_session` SET `UserIP` = '$UserIP', `UserHost` = '$UserHost', `UserStart` = '$UserStart', `UserCurrent` = '$UserCurrent' WHERE `SessionID` = '$SessionID'";
mysql_query($update) or die("Session update failed : " mysql_error());

}else{

$UserCurrent strftime("%Y-%m-%d %H:%M:%S");

$update "UPDATE `user_session` SET `UserCurrent` = '$UserCurrent', `UserPage` = '$UserPage' WHERE `SessionID` = '$SessionID'";
mysql_query($update) or die("Session update failed : " mysql_error());

}
}
mysql_free_result($result);
}

function BadID($SessionID) {

$retval TRUE;
if (ereg("^[0-9a-zA-Z]+$"$SessionID)) {

$sql "SELECT `SessionID` FROM `user_session` WHERE `SessionID` = '$SessionID'";
$result mysql_query($sql) or die("SessionID query failed : " mysql_error());

if (mysql_num_rows($result) == ) {
$retval FALSE;
} else {
$retval TRUE;
}
mysql_free_result($result);
}
return $retval;
}

function MakeID() {
$SessionID md5(uniqid(rand()));
$insert "INSERT INTO `user_session` (`SessionID`) VALUES ('$SessionID')";
mysql_query($insert) or die("SessionID insert failed : " mysql_error());
return $SessionID;
}

?>


(By now, you've probably noticed that I don't comment my code. If you can't figure out what I'm doing feel free to ask me. I do try to write fairly straightforward code.)

Now for a simple home page. The main thing to see here is the PHP stuff at the top.

index.php
Code:
<?php
ob_start();
require "../connect.php";
ob_end_clean();

$SessionID $_COOKIE['MyCookie'];

if (BadID($SessionID)) {
$SessionID MakeID();
header('P3P: CP="IDC DSP COR CURa ADMa OUR IND PHY ONL COM STA"');
setcookie("MyCookie"$SessionID);
header("Location: \entry.php");
exit();
}

UserSession($SessionID"Home Page");
mysql_close($dbConn);

?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>WMV Hotlink Prevention Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Keywords" content="WMV, hotlink, prevention">
</head>

<body>
<center>
This is the home page for the WMV hotlink test setup.<br><br><br>
<a href='pages/video.php'>Videos</a>
</center>
</body>
</html>

If there is no cookie with a session ID, or the session ID found in the cookie is not valid (not found in the database) then a new session ID is generated and the user is redirected to the "entry.php" page. This page checks that the cookie has been set, and that the session ID is valid. If so, the user is returned to the home page, where the session ID will pass the check, and the user is through the door. If not, an error message is displayed.

entry.php
Code:
<?php

ob_start();
require "../connect.php";
ob_end_clean();

$SessionID $_COOKIE['MyCookie'];

if (!BadID($SessionID)) {
header("Location: /index.php");
exit();
}

?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>WMV Hotlink Prevention Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Keywords" content="WMV, hotlink, prevention">
</head>

<body>
<center>
There is a problem setting up a session for you.<br><br>

This site uses cookies. No personal information is gathered using a cookie,<br>
nor is any data gathered for tracking purposes. The cookie that is used is<br>
non-persistant, and is deleted when you close your browser.<br><br>

Please enable cookies for http://mydomain.com.<br><br>

<a href="index.php">Home Page</a>
</center>
</body>
</html>

This next page displays a list of available videos. It shows how to check to see if the user accessing the page came through the front door.

video.php
Code:
<?php
ob_start();
require "../../connect.php";
ob_end_clean();

$SessionID $_COOKIE['MyCookie'];

if (BadID($SessionID)) {
Header("Location: /index.php");
exit();
}

UserSession($SessionID"Video Index");

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>WMV Hotlink Protection Test - Video Index</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Keywords" content="WMV, hotlink, protection">
</head>

<body>
<center>
WMV Hotlink Protection - Video Index
<br><br><br>
<a href="/index.php" title="Home">Home</a>
<br><br><br>
All videos &copy; 2004 - Jim Brown (Unless otherwise noted.)
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="100%">
<?php
$sql "SELECT * FROM `gallery_video` WHERE `VideoActive` = 'yes' ORDER BY `VideoID` DESC";
$Videos mysql_query($sql) or die("Video query failed : " mysql_error());
echo "<table width='100%' border='0' cellspacing='0' cellpadding='5' style='line-height: 85%;'>";
while (list($VideoID$VideoActive$VideoTitle$VideoDate$VideoFile$VideoTime$VideoSize$VideoViews) = mysql_fetch_row($Videos)) {
$VideoThumb "$VideoFile.jpg";
echo "<tr>\n";
echo "<td>\n";
echo "<table>\n";
echo "<tr>\n";
echo "<td><a href='../pages/viewvideo.php?video=$VideoID&id=$SessionID'>$VideoTitle</a></td>\n";
echo "</tr>\n";
echo "<tr>\n";
echo "<td>$VideoDate</nobr></td>\n";
echo "</tr>\n";
echo "</table>\n";
echo "</td>\n";
echo "<td width='120px'><a href='../pages/viewvideo.php?video=$VideoID&id=$SessionID'><img src='../thumbs/$VideoThumb'></a></td>\n";
echo "<td width='45px' align='right'>Length:<br>Size:</a><br>Viewed:</td>\n";
echo "<td width='50px'>$VideoTime<br>$VideoSize<br>$VideoViews Times</td>\n";
echo "</tr>\n";
}
echo "</table>";
mysql_free_result($Videos);
mysql_close($dbConn);
?>

</td>
</tr>
</table>
</body>
</html>

Note that the links to the videos are passing the session ID as a GET variable. This is because Windows Media Player not only does not send any referrer information, it also does not send any cookie information.

And now the heart of the system. This file actually does the work to send the WMV file to the browser. After checking to see if the user came through the front door, of course!

viewvideo.php
Code:
<?php
ob_start();
require "../../connect.php";
ob_end_clean();

$SessionID $_GET['id'];

if (BadID($SessionID)) {
Header("Location: /index.php");
exit();
}

$VideoID $_GET['video'];

if ($VideoID or $VideoID 99 or strlen($VideoID) > 2) {
$BadVid TRUE;
}else{
$sql "SELECT `VideoFile`, `VideoViews` FROM `gallery_video` WHERE `VideoID` = $VideoID";
$Video mysql_query($sql) or die("Video query failed : " mysql_error());

if (mysql_num_rows($Video) > 0) {
list ($VideoFile$VideoViews) = mysql_fetch_row($Video);
$filename "../video/$VideoFile.wmv";
if (file_exists($filename)) {
$filesize filesize($filename);
$UserIP $_SERVER['REMOTE_ADDR'];
$sql "SELECT `UserPage` FROM `user_session` WHERE `SessionID` = '$SessionID'";
$result mysql_query($sql) or die("Stats query failed : " mysql_error());
list($Watching) = mysql_fetch_row($result);
if ($Watching <> "Watching $VideoFile") {
UserSession($SessionID"Watching $VideoFile");
$VideoViews $VideoViews 1;
$sql "UPDATE `gallery_video` SET `VideoViews` = $VideoViews WHERE `VideoID` = $VideoID";
mysql_query($sql) or die("Video view update failed : " mysql_error());
}
mysql_free_result($Video);
mysql_close($dbConn);
$fp fopen($filename"rb");
ob_end_clean();
header('Expires: 0');
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: video/x-ms-wmv");
header("Accept-Ranges: bytes");
$user_agent strtolower ($_SERVER[HTTP_USER_AGENT]);
if ((is_integer (strpos($user_agent"msie"))) && (is_integer (strpos($user_agent"win")))) {
header"Content-Disposition: filename=".basename($filename).";" );
} else {
header"Content-Disposition: attachment; filename=".basename($filename).";");
}
header("Content-transfer-encoding: binary");
header("Content-Length: $filesize");
flush();
$speed="4096";
while (!feof($fp)) { 
print(fread($fp$speed)); 
flush();
}
fclose ($fp);
exit();
} else {
$BadVid TRUE;
}
} else {
$BadVid TRUE;
}
mysql_free_result($Video);
}
mysql_close($dbConn);

if ($BadVid) {
?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>WMV Hotlink Protection Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Keywords" content="WMV, hotlink, protection">
<meta http-equiv="REFRESH" content="5; URL=/pages/video.php">
</head>

<body>
<center>
WMV Hotlink Protection Test - ViewVideo
<br><br><br>
ERROR! Video not found.
</center>
</body>
</html>
<?php
}
?>


A point about the above file. Note how it checks to see if the user is already watching the file or not. This is because this file can get called up to three times for a single viewing request by the user. It's just the way IE6 and Window Media Player operate. Since I only want to increment the times viewed counter once for a single view by a user, I have to make the check to see if the file has already run for that particular video for that particular user.

Finally, the cleanup PHP file. This should be run as a cron job fairly frequently. I run mine every five minutes. It does output some stuff, so if you do not redirect the job to /dev/null, you will get an email with the results each time it is run.

sessionmaint.php
Code:
<?php
$server "localhost";
$dbUser "<dbusername>";
$dbPass "<dbpassword>";
$db "wmvhotlink_test";

$dbConn mysql_connect($server,$dbUser,$dbPass) or die("Could not connect : " mysql_error());
mysql_select_db($db) or die("Could not select database");

$sql "Select `SessionID`, `UserIP`, `UserStart`, `UserCurrent`, `UserPage` FROM `user_session`";
$result mysql_query($sql) or die("Get user stats failed : " mysql_error());

if (mysql_num_rows($result)) {
$CurrentTime time();
while (list($SessionID$UserIP$UserStart$UserCurrent$UserPage) = mysql_fetch_row($result)) {
$UserTime strtotime($UserCurrent);
$Active "Active ";
if (($UserTime 1800) < $CurrentTime) {
$sql "DELETE FROM `user_session` WHERE `SessionID` = '$SessionID'";
$delete mysql_query($sql) or die("User session deletion failed for $UserIP : " mysql_error());
$Active "Deleted";
}
echo "$Active: $UserStart - $UserCurrent :: $UserIP - $UserPage\n";
}
}else{
echo "No active users.\n";
}
?>


Last but not least, once you have this working, you can put a .htaccess file in your video folder containing the following:
Code:
<Files *>
deny from all
</Files>

This will prevent anyone or anything from linking directly to your video files.

There you have it. A system to prevent hotlinking to WMV files. If you have any questions, feel free to ask me here.

Regards,
...jim
Logged

Meilena
Galactic Royalty
*****
Offline Offline

Posts: 206


« Reply #6 on: January 27, 2006, 04:05:31 AM »

Out of curiousity, did our hotlinking in cpanel help with you prevent wmv files at all?  If you login to Cpanel and click on the hotlinking icon, you will see an area where you can specify the extensions, e.g. jpg,jpeg,gif,png,bmp.  I don't have any wmv files to test it out, but was curious if you tried this as one of your options just for future reference.
Logged

Kind Regards,
Meilena Hauslendale
Customer Service Representative
 
Support and Assistance:
Help Desk - http://support.lunarpages.com/
FAQ - http://support.lunarpages.com/faq.php
Membership Forum - http://www.lunarforums.com/
Tutorials - http://www.lunarpages.com/tutorials/

Lunarpages Web Hosting

Lunarpages Forums

Lunarpapages Affiliate Program


support@lunarpages.com

Telephone: 1-714-521-8150
Fax: 1-714-521-8195
JimBrown
Knowing enough to be dangerous!
Jabba the Hutt
*****
Offline Offline

Posts: 743



WWW
« Reply #7 on: January 28, 2006, 11:35:53 AM »

Hi Heather,

The cPanel hotlink prevention (which uses .htaccess) does not work with directly linked WMV files.

As I explained in more detail above, and in the other thread that I linked to, .htaccess hotlink prevention relies on the referrer being present in the GET request. Unfortunatly, Windows Media Player does not send the referrer when it does a GET for a WMV file.

I also use similar code to serve images. I've been using these methods for over a year and a half now, and it works quite well.

One major advantage is that this type of system works in all cases. As you may know, .htaccess hotlink prevention may work too well, in that it blocks some legitimate requests because the end user may be using something that filters referrers.

Regards,
...jim
Logged

easycall
Intergalactic Cowboy
*****
Offline Offline

Posts: 68



WWW
« Reply #8 on: January 28, 2006, 08:20:47 PM »

Your post made me realize it might be a good idea for me to put hotlinking protection on a small collection of videos I have on my site.  So I used cpanel to prevent hotlinking to .mov, .wmv, .mpeg, etc.  It seems to be working fine as far as I know - I can still view the videos, anyway.  I'd appreciate some of you checking to be sure you have no trouble viewing the Quicktime videos and Windows Media Videos.

Thanks.

Jim - I went to your page yesterday and was unable to get any of your videos to play.  I don't know why, but all I got was a blank Windows Media screen.
Logged

Colleen
http://www.easycall.net/
--If you don't believe in something, you'll fall for anything.
easycall
Intergalactic Cowboy
*****
Offline Offline

Posts: 68



WWW
« Reply #9 on: January 28, 2006, 08:24:19 PM »

One more thing.  I read the post about 301 redirects for non-www to the www version of a site and since I've been wanting to do that too, I put the code in my htaccess file as posted:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^mysite.com
RewriteRule (.*) http://www.mysite.com/$1 [R=301,L]

After I got that working, I setup the hotlinking protection mentioned above in cpanel and it seems to have wiped out the 301 redirect code.  What's up with that?  I have to admit, I know very little about htaccess.
Logged

Colleen
http://www.easycall.net/
--If you don't believe in something, you'll fall for anything.
blazerblvd
Intergalactic Superstar
*****
Offline Offline

Posts: 180


WWW
« Reply #10 on: January 29, 2006, 08:04:30 AM »

You could also use something like flash to prevent hotlinking.  That way the video would stream without any problem.
Logged
easycall
Intergalactic Cowboy
*****
Offline Offline

Posts: 68



WWW
« Reply #11 on: January 29, 2006, 10:11:29 AM »

Well I got it all working. I left the hotlinking code in the htaccess file as written by cpanel and then added the 2nd 2 lines of the 301 direct code.  I guess the problem was that I had RewriteEngine On in two locations in the htaccess file?Huh?  Maybe?  Anyway, Sseems to work now.

But for Jim - I still am unable to view your videos.
Logged

Colleen
http://www.easycall.net/
--If you don't believe in something, you'll fall for anything.
JimBrown
Knowing enough to be dangerous!
Jabba the Hutt
*****
Offline Offline

Posts: 743



WWW
« Reply #12 on: February 01, 2006, 02:09:25 PM »

Colleen,

I have to believe that it is something with your computer that is preventing you from viewing the videos on my site. I say that because you are the only person who has mentioned this in the last six months or so.

Now, that doesn't mean that I don't want to figure out what the problem is, because I'm sure someone else will come along some day with the same problem. Smile

You mentioned that you just got a blank Windows Media Player screen. Did it show any other information? Did it show the title of the clip? What version of WMP is it? What browser are you using?

...jim
Logged

zoomos
Newbie
*
Offline Offline

Posts: 2


WWW
« Reply #13 on: August 13, 2006, 12:02:05 AM »

Crap... I'm at 700 gigs bandwidth this month.. I tryed using the cpanel hotlink function and it killed my site.. nothing loaded up so it doesn't work with certain scripts...

Seems everytime I upgrade I know I'm gonna have to upgrade again lol

Jim brown: download http://www.erightsoft.com/home.html [super] and convert all videos to flv and use a flv player.. I have one that I will send free (zoomos@gmail.com) but that is the only way today to stop hotlinkers
« Last Edit: August 13, 2006, 12:06:42 AM by zoomos » Logged

Inque187
Anti-Cheat & Beta Team
Spacescooter Operator
*****
Offline Offline

Posts: 39


Sic Vis Pacem, Para Bellum!


WWW
« Reply #14 on: November 12, 2006, 05:12:40 PM »

So I take it there is no simple way to just block .WMV files with hot-linking protection???
Logged

Pages: [1] 2   Go Up
  Print  
 
Jump to: