2014-02-26 53 views
1

我在現有的項目文件夾中有一個.htaccess文件。下面是.htaccess文件的代碼。.htaccess文件阻止css,js但是如何?

# Use PHP54 Single php.ini as default 
#Options +FollowSymLinks 
#Options +Indexes 
RewriteEngine On 
RewriteBase/
#RewriteRule ^users/([A-Za-z0-9_]+)$ users/index.php [NC,L] 
#RewriteRule ^([A-Za-z0-9_]+)$ users/$1 [NC,L] 

#RewriteRule^- [L] 
#RewriteCond %{DOCUMENT_ROOT}/users/$1 -f 
#RewriteRule .* users/$1 [L] 
#Options -Indexes 
#RewriteEngine On 
#RewriteRule ^[!/.]*([A-Za-z0-9]+)/?$ /index.php?id=$1 [NC,L] 



#<FilesMatch "\.(?i:vcf)$"> 
# ForceType application/octet-stream 
# Header set Content-Disposition attachment 
#</FilesMatch> 

# If requested resource exists as a file or directory, skip next two rules 
RewriteCond %{DOCUMENT_ROOT}/$1 -f [OR] 
RewriteCond %{DOCUMENT_ROOT}/$1 -d 
RewriteRule (.*) - [S=2] 
# 
# Requested resource does not exist, do rewrite if it exists in /users 
RewriteCond %{DOCUMENT_ROOT}/users/$1 -f [OR] 
RewriteCond %{DOCUMENT_ROOT}/users/$1 -d 
RewriteRule (.*) users/$1 [L] 
# 
# Else rewrite requests for non-existent resources to /index.php 
RewriteRule (.*) users/index.php?q=$1 [L] 

所以會發生什麼吧,當我嘗試在URL在本地主機

http://localhost/projectfolder 
它打開沒有任何JavaScript和CSS索引文件

打開項目。此外,其他頁面的鏈接無法打開,錯誤消息顯示爲「未找到對象」。所以我只能用css和js文件查看index.php。

但是,當我刪除/重命名.htaccess文件,一切正常。所以在這個文件中必須有一些東西阻塞所有的css,js文件。所以我沒有要求編寫一個.htaccess文件的所有規則,我只需要知道哪一行代碼阻止了這些文件,以及如何編輯這些文件,所以它不會阻止任何文件在本地主機上工作。

注意: - 這個問題,我只是要求我的知識。正如我寫的,如果我刪除文件,那麼它的工作正常。但是我仍然想知道哪一行代碼阻止了對文件的訪問。謝謝。

回答

0

我懷疑這個規則是不是做你認爲它應該做的事情:

RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -l 
RewriteRule^- [L] 

你也可能會使用相對鏈接的CSS/JS /圖片:

RewriteCond %{DOCUMENT_ROOT}/$1 -f [OR] 
RewriteCond %{DOCUMENT_ROOT}/$1 -d 
RewriteRule (.*) - [S=2] 

替換爲這在重寫爲/users/後也會導致404。你有2個選項來解決這個問題:

  1. 在你的CSS,JS,圖像文件,而不是相對的使用絕對路徑。這意味着您必須確保這些文件的路徑始於http://或斜槓/
  2. 您可以嘗試在你的頁面的HTML頭添加此:

    <base href="/" /> 
    
+0

是的,當我取代了它的工作。問題在於這3條線。 thnks找到它.. – user1638279

+0

不客氣,很高興它解決了。 – anubhava