2013-03-24 70 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

相关问题