Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 如何为控制器路由编制目录索引?_.htaccess_Symfony_Apache2_Directoryindex - Fatal编程技术网

.htaccess 如何为控制器路由编制目录索引?

.htaccess 如何为控制器路由编制目录索引?,.htaccess,symfony,apache2,directoryindex,.htaccess,Symfony,Apache2,Directoryindex,根据我当前的配置,每次我键入something.com,它都会显示app_dev.php,这是正确的,因为我当前的重写规则。但我想要的是,如果用户键入www.something.com,它将自动指向www.something.com/home 注:“家”是我的一个包下的路线 这是我当前的配置 <VirtualHost *:80> # Admin email, Server Name (domain name), and any aliases ServerAdmin admi

根据我当前的配置,每次我键入something.com,它都会显示app_dev.php,这是正确的,因为我当前的重写规则。但我想要的是,如果用户键入www.something.com,它将自动指向www.something.com/home

注:“家”是我的一个包下的路线

这是我当前的配置

<VirtualHost *:80>
  # Admin email, Server Name (domain name), and any aliases
  ServerAdmin admin@something.com
  ServerName  www.something.com

  # Index file and Document Root (where the public files are located)
#  DirectoryIndex home    # I have already tried this, nothing happens
  DocumentRoot /home/user/public/something.com/web/symfony/web

  # Log file locations
  LogLevel warn
  ErrorLog  /home/user/public/something.com/log/error.log
  CustomLog /home/user/public/something.com/log/access.log combined
</VirtualHost>

#管理员电子邮件、服务器名(域名)和任何别名
服务器管理员admin@something.com
服务器名www.something.com
#索引文件和文档根目录(公共文件所在的位置)
#DirectoryIndex home#我已经试过了,什么都没发生
DocumentRoot/home/user/public/something.com/web/symfony/web
#日志文件位置
日志级别警告
ErrorLog/home/user/public/something.com/log/error.log
CustomLog/home/user/public/something.com/log/access.log组合
.htaccess-in-Symfony/web

<IfModule mod_rewrite.c>
    RewriteRule ^$ app.php/home [L]

    Options +FollowSymlinks
    RewriteEngine On

    # Explicitly disable rewriting for front controllers
   RewriteRule ^app_dev.php - [L]
   RewriteRule ^app.php - [L]

    RewriteCond %{REQUEST_FILENAME} !-f

    # Change below before deploying to production
    RewriteRule ^(.*)$ app.php [QSA,L]
    #RewriteRule ^(.*)$ app_dev.php [QSA,L]

</IfModule>

重写规则^$app.php/home[L]
选项+FollowSymlinks
重新启动发动机
#显式禁用前控制器的重写
重写规则^app_dev.php-[L]
重写规则^app.php-[L]
重写cond%{REQUEST_FILENAME}-F
#在部署到生产环境之前进行以下更改
重写规则^(.*)$app.php[QSA,L]
#重写规则^(.*)$app_dev.php[QSA,L]
实际url必须是www.something.com/app.php/home(当前规则隐藏了app.php)


编辑:根据给出的答案更新.htaccess库。但仍然不起作用

在顶部插入一条
重写规则

RewriteRule ^$ home [L]

这将重定向到
/home
,如果希望客户端看到此URL,则必须向规则添加一个标志。

在.htaccess或VirtualHost中,使用
mod_alias
获得临时重定向(302)。您不必担心它与应用程序URL重写冲突

Redirect / /home

请参见

它返回/home未在此服务器中找到。实际上,我原来的url看起来是www.something.com/app.php。我当前的配置隐藏了app.php,我需要在每个页面中都包含它。简言之,当我尝试你的建议时,我应该有www.something.com/app.php/home。它将删除app.phpstill不工作。404找不到。下面是实际链接-->cloud-pod.net返回404,但cloud-pod.net/home返回页面。仍然相同。当我查看apache错误日志时。“实际上没有报告任何内容。@Saber所有这些规则,上一个和这个一样,都在我的测试环境中工作,所以我不知道这里出了什么问题。”。不管怎样,我没主意了,对不起。不管怎样,谢谢。我很想知道是什么原因导致它不起作用。