2013-07-26 75 views
0
RewriteEngine On 
RewriteBase/

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 


RewriteRule ^Download/(.*)/?$ ./downloadit.php?key=$1 
RewriteRule ^Buy/(.*)/?$ ./buy.php?key=$1 
RewriteRule ^Admin/(.*)/?$ ./admin.php?cmd=$1&key=$2 
RewriteRule ^Admin/Edit/(.*)/?$ ./editfile.php?key=$1 

我通常不用阿帕奇重寫引擎,所以我不知道。htaccess不工作找不到文件

我試圖解析鏈接是:http://Website.com/~User/Download/Testlicious/

我有4個文件總計,所有這些PHP文件。我想直接改寫那些文件

但它一直給我一個404找不到/downloadit.php它在同一目錄下,與其餘的一樣。

* UPDATE * * * 由於對虛擬主機,咄。我現在需要正確設置我重寫基地,DOH

RewriteEngine On 
RewriteBase /~GameCenter/ 
RewriteRule ^Download/(.*)/?$ ./downloadit.php?key=$1 [qsa] 
RewriteRule ^Buy/(.*)/?$ /buy.php?key=$1 
RewriteRule ^Admin/(.*)/?$ /admin.php?cmd=$1&key=$2 
RewriteRule ^Admin/Edit/(.*)/?$ /editfile.php?key=$1 

現在一切都鏈接和工作,但是現在的問題是,$ 0/$ 1/$ 2不觸發的任何文件。沒有什麼吐出$ _POST ['key']

現在我猜想問題的第一步是解決。但現在到O_O步驟2!

+0

是這是一個Linux環境? – Tamas

+0

也嘗試不用RewriteCond位 - 嘗試:RewriteRule ^下載/(.*)/?$ /downloadit.php?key=$1 [NC,L] – Tamas

+0

試過這樣,仍然沒有好處。它會看到下載/但它不會找到downloadit.php文件和它們在同一個目錄中:| –

回答

0

您需要爲每個規則添加條件 ,我很肯定 RewriteRule模式匹配在開始時也需要一個斜槓

我已經承擔了4個PHP文件在您.htaccess文件在同一目錄

[L]告訴mod_rewrite停止解析.htaccess文件當前請求:

RewriteEngine On 
RewriteBase/

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^Download/(.*)/?$ /downloadit.php?key=$1 [L] 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^Buy/(.*)/?$ /buy.php?key=$1 [L] 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
# You've only specified one matching group here, so $2 will be blank 
RewriteRule ^Admin/(.*)/?$ /admin.php?cmd=$1&key=$2 [L] 

RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 
RewriteRule ^Admin/Edit/(.*)/?$ /editfile.php?key=$1 [L] 
+1

不,在每個目錄的上下文中,請求URI _never_以斜槓開始。 – CBroe

+0

@CBroe感謝您的支持 – Jon

+0

現在我已經嘗試了您鍵入的內容,但它仍然無效。 未找到 在此服務器上未找到請求的URL /downloadit.php。 很煩人的XD lolz。 –