.htaccess 使用htaccess清除URL重新路由

u2nhd7ah  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(182)

我正在执行this tutorial,文件结构如下:

└── public
   ├── .htaccess
   └── index.php
└── .htaccess

一切都按预期运行。

root.htaccess看起来像这样:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^$ public/ [L]
    RewriteRule (.*) public/$1 [L]
</IfModule>

我对.htaccess不太了解,但我想这会将URI重路由到public目录,所以每个请求都会转到那里。

public目录中的.htaccess如下所示:

<IfModule mod_rewrite.c>
    Options -Multiviews
    RewriteEngine On
    RewriteBase /auth/public
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
</IfModule>

上面的一切都按预期工作,但我想增强它,所以它的工作方式如下:

  1. URL https://www.something.com/anything保持不变
    1.但在服务器上,它是这样处理的https://www.something.com/index.php?q=anything(技术上是https://www.something.com/public/index.php?q=anything
mrzz3bfm

mrzz3bfm1#

好了,我找到了答案。我编辑了root .htaccess,并将最后一行改为:RewriteRule (.*) public/index.php?s=$1 [L]
整个文件现在看起来如下所示:

<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule ^$ public/ [L]
    #RewriteRule (.*) public/$1 [L]
    RewriteRule (.*) public/index.php?q=$1 [L]
</IfModule>

将URI重新路由到public目录的重写规则现在将URI重新路由到索引的查询。

相关问题