2014-02-25 124 views
0
Options +FollowSymLinks 
RewriteEngine on 
RewriteCond %{HTTP_HOST} ^domain.com [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301] 
RewriteRule files/name/(.*).(pdf)$/ download.php?file=$1.$2&tkn=token 
RewriteRule files/name/(.*).(pdf)$ download.php?file=$1.$2&tkn=token 
RewriteRule files/name2/(.*).(pdf)$/ download2.php?file=$1.$2&tkn=token 
RewriteRule files/name2/(.*).(pdf)$ download2.php?file=$1.$2&tkn=token 

文件夾名稱和名稱2包含相同的文件。 download.php和download2.php是相同的。.htaccess重寫似乎在更長的字符串上失敗

文件/名稱/(.*)重寫規則將幾乎所有文件重定向到download.php,但失敗,似乎是長文件名。兩個文件我知道它已經失敗的是:

ABCDEFGHIJKLMN-abcdefghij.pdf

Pbcdefg AB ABC Abdefghij 2.PDF

的文件/文件名2 /(.*)規則捕獲所有文件,包括兩個在第一條規則中失敗。從字面上看,如果我去http://www.domain.com/files/names/abcdefghijklmn-abcdefghij.pdf,服務器將直接爲我提供文件。如果我去http://www.domain.com/files/names2/abcdefghijklmn-abcdefghij.pdf,(只需加2名),服務器將我重定向到http://www.domain.com/download2.php?file=abcdefghijklmn-abcdefghij.pdf&tkn=token

我一直試圖讓這幾個小時的工作,我不知道爲什麼第一個規則將不會工作。有一些奇怪的特質我錯過了嗎?

+0

我假設這些將是PDF文件? –

+0

是的,這些是PDF文件。 –

回答

0

試試這種方式,看看它是如何工作的。

RewriteCond %{HTTP_HOST} ^domain.com [NC] 
RewriteRule ^(.*)$ http://www.domain.com/$1 [L,R=301] 
RewriteRule files/name2/(.*)\.pdf$ /download2.php?file=$1.pdf&tkn=token [R,L] 
RewriteRule files/name/(.*)\.pdf$ /download.php?file=$1.pdf&tkn=token [R,L] 
+0

試過這個,它重定向到: http://www.domain.com/home/user/public_html/download.php?file=testfile.pdf&tkn=token 它添加了根路徑的原因是什麼? –

+0

偶然有Godaddy嗎?無論如何,請嘗試像更新一樣在前面的download.php和download2.php中添加一個斜槓。 –