2011-09-28 61 views

回答

0

這是因爲Zend提供的默認RewriteRules將所有請求重定向到Zend Framework引導程序(index.php)。

要做的最好的事情,恕我直言,是增加一個例外到這個規則。然後有不止一種方法來做到這一點。您可以使用RewriteCond(例如,避免現有目錄或/ public中的文件的常規重定向)。但是你也可以在RewriteRule表達式中對它進行過濾。這是在RewritreRule例外的例子,所以withoutt的RewriteCond:

RewriteRule !(public/facebook/(.*\.php))|(public/(.*\.pdf))|(externalauthent\.php)|(favicon.ico)|(images/(.*\.(ico|gif|jpg|png|bmp|JPG|JPEG|BMP|GIF|PNG)))|(css/(.*\.css))|(js/(.*\.*))$ /index.php [L] 
+0

哇,這是一些規則!是否有錯誤...我只是直接粘貼到我的訪問文件,並得到500錯誤?我不太確定這個規則是什麼,但最終我希望能夠在沒有Zend的控制器問題的情況下請求http://mysite.com/facebook/app/index.php。 – Owen

+0

所以首先嚐試一個簡單的'RewriteRule!(public/facebook/app/index \ .php)|(facebook/app/index \ .php)$ /index.php [L]'這裏我使用了parth的2個版本,不確定是否是正確的,這意味着如果路徑不是列出的內容之一(用或符號|)然後將其重定向到index.php – regilero

+0

我不知道爲什麼,但也給了500錯誤。我發現了一個可以工作的解決方案,它將以下內容添加到標準Zend htaccess文件的倒數第二行:RewriteCond%{REQUEST_URI}!^/facebook – Owen

0

如果您有這URL內容,ZF不要試圖找到Facebook的控制器,你需要添加一個文件夾命名爲Facebook和文件index.php文件到該文件夾​​

0

這項工作對我來說:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteCond %{REQUEST_URI} !^/public_directory_name 
RewriteRule ^.*$ index.php [NC,L] 

正好與目錄的名稱替換「public_directory_name」你不想Zend的治療作爲控制器。

在不同的措辭問題中回答:htaccess - do not rewrite in this case

相關問題