.htaccess 如何为控制器路由编制目录索引?
根据我当前的配置,每次我键入something.com,它都会显示app_dev.php,这是正确的,因为我当前的重写规则。但我想要的是,如果用户键入www.something.com,它将自动指向www.something.com/home 注:“家”是我的一个包下的路线 这是我当前的配置.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
<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所有这些规则,上一个和这个一样,都在我的测试环境中工作,所以我不知道这里出了什么问题。”。不管怎样,我没主意了,对不起。不管怎样,谢谢。我很想知道是什么原因导致它不起作用。