2013-03-24 73 views
0

所以我有了這個在它的.htaccess文件:.htaccess無法正常工作,我做錯了什麼?

SetEnv APPLICATION_ENV development 

RewriteEngine On 
RewriteRule ^/path/to/app/(.*)$ /path/to/app/public/$1 [NC,L] 

當我去/路徑/到/應用/瀏覽器會顯示,而不是服務器重定向到/路徑的目錄結構/ to/app/public/$ 1

我在做什麼錯?

+0

如果您有權訪問它們,請檢查apache錯誤日誌。另一件事是幫助你改寫規則[重寫日誌](http://httpd.apache.org/docs/2.2/en/mod/mod_rewrite.html#rewritelog)...幫助我調試一些複雜的規則 – Pykler 2013-03-24 20:47:56

回答

0

我想你嘗試構建Symfony應用程序?要重寫規則,你需要允許覆蓋在httpd.conf

DocumentRoot "/var/www/symfony/web" 

<Directory "/var/www/symfony/web"> 
    allow from all 
    AllowOverride All <------------- 
    Options +Indexes 
</Directory> 

如果您使用指令

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 

這意味着if目錄存在then顯示結構else使用其他重寫規則

也可嘗試

RewriteRule ^/path/to/app/(.*)$ /path/to/app/public/$1 [QSA,L] 
+0

我不喜歡無法訪問虛擬主機 – 2013-03-24 21:53:18

+0

您可以在.htaccess文件中寫入它 – Barif 2013-03-25 10:17:05

1

問題是這一行:

RewriteRule ^/path/to/app/(.*)$ /path/to/app/public/$1 [NC,L] 

記住:重寫不匹配導致的斜線。將您的規則更改爲:

RewriteEngine On 
RewriteBase/
RewriteRule ^(path/to/app)/(.*)$ /$1/public/$2 [NC,L] 
+0

感謝您的幫助,仍然無法正常工作。如果這有所幫助,我的.htaccess文件位於應用程序目錄中。 – 2013-03-25 14:28:54

+0

什麼是您的DOCUMENT_ROOT設置?它是應用程序目錄上的一個dor嗎? – anubhava 2013-03-25 14:42:49

相關問題