2017-03-03 129 views
0

訪問文件時,我有這個簡單的htaccess文件,應該把每個請求的index.php?網站=的.htaccess的404錯誤沒有擴展

的問題是,當有一個文件(如test.php的) htaccess和url的文件夾是domain.com/test,它會拋出一個標準的「404未找到」錯誤。

我該如何解決這個問題?

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?site=$1 [QSA,L] 

謝謝!

+1

而_what_錯誤它扔?還是我們的意思是_guess_? – arkascha

+0

讓我試一下猜測:「file'index.php'不存在!」 – arkascha

+0

因爲如果該文件_would_存在,那麼你肯定會發布它包含的重要部分...... – arkascha

回答

0

所有你需要做的就是

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?site=$1 [QSA,L] 

取出RewriteBase /

否則,它會重定向到你的根文件夾。

例如:

但它重定向到http://127.0.0.1/index.php?site=abc當您添加RewriteBase /因此將其刪除

+0

可悲的是,這不是問題。即使刪除了RewriteBase,它仍然會出現在404上。該項目放置在用戶的根目錄中,因此它是正確的。另外,就像上面提到的那樣,它在沒有文件名的情況下工作。 domain.com/test的作品,因爲沒有test.EXTENSION文件。但是domain.com/login不起作用,因爲在同一個文件夾中有一個login.php文件。我的意思是我可以將文件移動到不同的目錄,但不應該需要,對吧?我想知道是什麼原因導致這個「bug」 –

+0

@KevinLienkamp,我在我的主機上檢查過它,發現它正在爲我工​​作。這是我在這裏作出答覆的唯一原因。我認爲這可能對他有用。感謝您的意見。 –