【问题标题】:how to redirect routing with .htacces如何使用 .htaccess 重定向路由
【发布时间】:2023-03-17 01:25:01
【问题描述】:

我的问题是我买了一个糟糕的主机,现在我无法设置自己的配置。 我需要通过 .htaccess 文件来完成。 这是我设法做的:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteCond %{REQUEST_URI} !^/Project/web/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /Project/web/$1
RewriteCond %{HTTP_HOST} ^(www.)?domain.com$
RewriteRule ^(/)?$ Project/web/app.php [L]

我知道这不适用于像我这样的一些网站软件。我还需要修改其中的 $base_url、$live_site 或其他配置设置以完成该过程。

当我进入我的域时,我从我选择的子目录开始,以便清楚地了解此设置。但是当我尝试转到另一个页面时,它返回 404 错误。

我知道如何让它工作,它还需要重定向路由 所以例如www.domain.com/page需要重定向到www.domain.com/Project/web/page,如果有人知道怎么做?

【问题讨论】:

    标签: php .htaccess symfony redirect routing


    【解决方案1】:

    也许是 PHP 头函数?

    <?php header("Location: http://www.example.com/"); exit; ?>
    

    PHP: header

    【讨论】:

      【解决方案2】:

      我曾经在一个共享主机服务上安装过 symfony。

      这就是让 Symfony 正常工作我必须做的事情:

      在公共目录中有项目的结构:

      /app
      /src
      /vendor
      /web/.htaccess
      /.htaccess
      

      我在 /.htaccess 中写道:

      SetEnv PHP_VER 5_3
      SetEnv REGISTER_GLOBALS 0
      
      <IfModule mod_rewrite.c>
         RewriteEngine On
         RewriteBase /web
      
         RewriteCond %{REQUEST_URI} \.(css|gif|ico|jpg|js|png|swf|txt|pdf|doc|docx|mp3|svg)$
         RewriteRule ^(.*)$ $1 [QSA,L]
      
         RewriteCond %{REQUEST_FILENAME} !-f
         RewriteRule ^(.*)$ web/app.php/$1 [QSA,L]
       </IfModule>
      

      我在 /web/.htaccess 中写道:

      <IfModule mod_rewrite.c>
          RewriteEngine On
      
          RewriteCond %{REQUEST_FILENAME} !-f
          RewriteRule ^(.*)$ app.php [QSA,L]
      </IfModule>
      

      就是这样……

      【讨论】:

      • 它对我不起作用,我在另一个名为 project 的文件夹中提到了这种结构,例如 public directory/Project/...,在公共目录中我做了这样的 .htacces:SetEnv PHP_VER 5_4 SetEnv REGISTER_GLOBALS 0 &lt;IfModule mod_rewrite.c&gt; RewriteEngine On RewriteBase Project/web RewriteCond %{REQUEST_URI} \.(css|gif|ico|jpg|js|png|swf|txt|pdf|doc|docx|mp3|svg)$ RewriteRule ^(.*)$ $1 [QSA,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ Project/web/app.php/$1 [QSA,L] &lt;/IfModule&gt;
      • 页面:Internal Server Error 和来自日志[Thu Nov 21 18:13:51 2013] [alert] [client 156.13.234.244] /public_html/.htaccess: RewriteBase: argument is not a valid URL
      • 是的,您的文件中缺少第一个 / :RewriteBase /Project/web
      • 好的,现在已经修复了:但是在我的/Project/ 中,我还有一个带有deny from all 的.htacces 文件,它不允许在那里吗? [Thu Nov 21 20:08:41 2013] [error] [client 156.13.234.244] client denied by server configuration: /home/sl129581/public_html/Project/web/Project。因为如果我延迟它就可以了
      • 我不确定,但如果您拒绝所有“/Project/”,我认为您的用户无法访问“/Project/web”...您可以删除它吗?安全性是递归的
      猜你喜欢
      • 2014-12-08
      • 2014-05-09
      • 1970-01-01
      • 2019-02-22
      • 2021-11-06
      • 2019-01-31
      • 2020-10-08
      • 1970-01-01
      相关资源
      最近更新 更多