使用htaccess清理URL重路由



我遵循本教程,文件结构如下:

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

一切正常

.htaccess看起来像这样:

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

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

public目录如下所示:

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

上面的一切都如预期的那样工作,但我想增强它,使它像这样工作:

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

好了,我找到答案了。我编辑了根。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重路由到索引的查询。

相关内容

  • 没有找到相关文章

最新更新