這是CakePHP的上下文,但我確定它在其他應用程序中很常見。我實現這個頁上的說明:.htaccess:多個.htaccess文件如何工作?
http://book.cakephp.org/view/917/Apache-and-mod_rewrite-and-htaccess
答:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>
B:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ webroot/ [L]
RewriteRule (.*) webroot/$1 [L]
</IfModule>
C:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
在第3,有3 .htaccess文件。爲了簡單起見,我們稱它們爲A,B和C.雖然它似乎在我的服務器(localhost XAMPP)上工作,但我不確定是否理解重定向的路徑。無論我輸入什麼地址,它都會按照它的設置始終進入localhost \ cake \ users \ login。
我的應用程序的根目錄所在的位置是\ cake。我有\蛋糕,\蛋糕\應用程序和蛋糕\應用程序\ webroot分別與A,B和C,在他們。按照上面的說明,cake \ app中的代碼運行,這正是我想要的。在像上面那樣正確設置.htaccess文件之前,\ cake中的代碼正在運行;這是不正確的,因爲它告訴我我的數據庫沒有設置,你沒有這個文件,等等。
有人可以幫助我和「路徑」這個應用程序正在之前運行任何PHP文件?是否將所有內容重定向到cake \ app \ webroot,然後重定向到超出.htaccess文件的位置? (在這種情況下,以cake \ users \ login)
謝謝你的幫助!
PS:我很慚愧地說,我還沒弄清楚哪個文件的哪一部分重定向到用戶登錄頁面的所有HTTP請求。我剛剛設置了這個,我剛剛回來了。我想我正在CakePHP Cookbook頁面上的第二個教程中添加一個ACL功能..
簡單的跟蹤方法:爲每個重寫添加一個額外的查詢參數:'RewriteRule ...?url = $ 1&from = fileC' –
Marc,是「...」應該是別的嗎? – musicliftsme
是的,這是你的重寫url的其餘部分。只是因爲沒有削減粘貼整個事情而懶惰。重要的是添加'&from = fileC'查詢參數。 –