【问题标题】:Redirect root domain to sub folder file without displaying path in address bar将根域重定向到子文件夹文件而不在地址栏中显示路径
【发布时间】:2015-10-12 01:11:08
【问题描述】:

我的 symfony 项目在 public_html/web/app.php 我想要的是重定向我的站点 example.com 上的所有请求以在该路径中打开 app.php,而不在地址栏中显示完整路径。 即虽然文件路径将是 example.com/web/app.php,但所有用户都应该在地址栏中看到 example.com。

【问题讨论】:

  • 正如你在标签中提到的 htaccess 也执行此任务
  • 一个默认的 symfony 项目已经包含了所需的 htacces 文件。您只需将主机设置为使用 /web 作为 Web 根目录。
  • 我试过 htaccess。上网冲浪,做了别人做过的事。对他们有用的对我不起作用
  • @Yoshi 似乎我也做不到。我尝试添加域,重定向所有内容..
  • 我的意思是你可能不应该尝试用你的 symfony 项目来解决这个问题,而应该用你的托管环境给你的工具来解决这个问题。尝试寻找一个配置选项来定义 document/web-root 文件夹。

标签: php .htaccess symfony


【解决方案1】:

在你的 public_html/.htaccess 中试试这个

RewriteEngine on
RewriteRule ^.*$ /web/app.php [NC,L]

【讨论】:

  • 已经尝试了很多东西.. 没有任何效果。这也不起作用。它仍然指向 public_html
  • 我在 public_html 文件夹中创建了 index.html,其中包含一些内容。在我输入 url 之后。我尝试打开 index.html 位于 public_html 中的文件正在打开
  • 你能发布你的 htaccess 文件的内容吗?
  • 'code' RewriteEngine on RewriteCond %{HTTP_HOST} !^www\.hamrosahitya\.com$ RewriteRule ^(.*)$ hamrosahitya.com/$1 [R=301,L] RewriteRule ^$ /app .php RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI} !\..+$ RewriteCond %{REQUEST_URI} !(.*)/$ RewriteRule ^(.*)$ hamrosahitya.com/$1 [L,R= 301] 'code' RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_URI} !^/web/ RewriteRule ^(.*)$ /web/$1
  • 是否要将所有传入请求(包括现有文件和目录)重定向到 /web/app.php ?
【解决方案2】:

正如@Yoshi 在 cmets 中指出的那样,您需要将网站的 DocumentRoot 设置为 .../public_html/web,并且将 not 设置为 ../public_html.

如果正确,您应该可以通过以下方式浏览您的应用:

example.com/app.php

之后,您可以使用提到的 .htaccess 规则重定向并删除“app.php”部分。

这是标准的 Symfony 配置。如果您想做一些不寻常的事情并将 Symfony 放在现有站点的子文件夹中,这是一个已经回答的不同问题:How can I deploy Symfony in a subdirectory?

【讨论】:

    猜你喜欢
    • 2015-06-20
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多