0

所以我有一个 .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

我究竟做错了什么?

4

2 回答 2

1

问题是这一行:

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

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

RewriteEngine On
RewriteBase /
RewriteRule ^(path/to/app)/(.*)$ /$1/public/$2 [NC,L]
于 2013-03-25T11:09:41.110 回答
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]
于 2013-03-24T20:45:49.507 回答