所以我有了這個在它的.htaccess文件:.htaccess無法正常工作,我做錯了什麼?
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteRule ^/path/to/app/(.*)$ /path/to/app/public/$1 [NC,L]
當我去/路徑/到/應用/瀏覽器會顯示,而不是服務器重定向到/路徑的目錄結構/ to/app/public/$ 1
我在做什麼錯?
所以我有了這個在它的.htaccess文件:.htaccess無法正常工作,我做錯了什麼?
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteRule ^/path/to/app/(.*)$ /path/to/app/public/$1 [NC,L]
當我去/路徑/到/應用/瀏覽器會顯示,而不是服務器重定向到/路徑的目錄結構/ to/app/public/$ 1
我在做什麼錯?
我想你嘗試構建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]
我不喜歡無法訪問虛擬主機 – 2013-03-24 21:53:18
您可以在.htaccess文件中寫入它 – Barif 2013-03-25 10:17:05
問題是這一行:
RewriteRule ^/path/to/app/(.*)$ /path/to/app/public/$1 [NC,L]
記住:重寫不匹配導致的斜線。將您的規則更改爲:
RewriteEngine On
RewriteBase/
RewriteRule ^(path/to/app)/(.*)$ /$1/public/$2 [NC,L]
感謝您的幫助,仍然無法正常工作。如果這有所幫助,我的.htaccess文件位於應用程序目錄中。 – 2013-03-25 14:28:54
什麼是您的DOCUMENT_ROOT設置?它是應用程序目錄上的一個dor嗎? – anubhava 2013-03-25 14:42:49
如果您有權訪問它們,請檢查apache錯誤日誌。另一件事是幫助你改寫規則[重寫日誌](http://httpd.apache.org/docs/2.2/en/mod/mod_rewrite.html#rewritelog)...幫助我調試一些複雜的規則 – Pykler 2013-03-24 20:47:56