2014-02-13 49 views
1

我有一個帶有「index.php」和「upload.php」的文件夾。htaccess - 重寫除密碼以外的所有內容並使用密碼保護

我想每個請求重定向除 「/上傳」 我的 「的index.php」:

1)http://example.com/abc123 - >的index.php

2)http://example.com/upload - > /上傳。 php

我想用密碼保護/上傳。到目前爲止,我設法一切重定向到我的index.php

Options +FollowSymLinks 
RewriteEngine on 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^.*$ index.php [NC,L] 

在我「的index.php」我可以再使用

trim($_SERVER['REQUEST_URI'], '/') 

我如何添加規則重定向/上傳到我「上傳.php「並用密碼保護文件?

在此先感謝您的幫助。

+0

是:

Options +FollowSymLinks RewriteEngine on RewriteBase/ RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^(?!/?upload).*$ index.php [NC,L] RewriteRule ^/?upload$ upload.php [NC,L] 

對於密碼保護的部分上傳目錄中的upload.php文件? –

+0

@PanamaJack我的upload.php和我的index.php都在同一個文件夾(根目錄) – Daniel

回答

1

您可以用負先行((?!...))做到這一點:(基於評論從OP編者)

<FilesMatch "upload.php"> 
    # Change "Members Only" to whatever you want 
    AuthName "Members Only" 
    AuthType Basic 
    # This should be a path to a .htpassword file; change it to match your system 
    # You can generate a .htpassword file online in lots of places, like http://www.htaccesstools.com/htpasswd-generator/ 
    AuthUserFile /home/cpanelusername/.htpasswd 
    require valid-user 
</FilesMatch> 

+0

謝謝,但它還沒有工作。我想「/上傳」重定向到我的「upload.php」和其他每一個請求我的「index.php」。如果我使用.htaccess並輸入「/ upload」,我會得到一個404,因爲它不會將我重定向到我的「upload.php」。另外我想從這個重寫中排除我的文件(css/js等)(就像我用RewriteConds做的那樣)。 – Daniel

+1

我現在明白你的問題了;當你說「除'/ upload'之外的每一個請求」,我都會從字面上理解你。 :)請參閱我上面編輯的答案。 –

+0

非常感謝,密碼保護部分的作品。另外「/ upload」被重定向到我的「upload.php」。如果我輸入「/ abc123」之類的東西,我會因爲某種原因得到一個404。而對於「/css/main.css」(我的CSS文件)的請求,我將被重定向到我的「index.php」。 – Daniel