.htaccess不工作,我做错了什么?

时间:2013-03-24 20:39:50

标签: .htaccess

所以我有一个.htaccess文件,里面有这个:

SetEnv APPLICATION_ENV development

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

当我在浏览器中转到/ path / to / app /时,会显示目录结构,而不是将服务器重定向到/ path / to / app / public / $ 1

我做错了什么?

2 个答案:

答案 0 :(得分:1)

问题在于这一行:

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

请记住:重写与前导斜杠不匹配。将您的规则更改为:

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

答案 1 :(得分: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

也可以尝试

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