繁体   English   中英

使用 htaccess 清理 URL 重新路由

[英]Clean URL reroute with htaccess

我正在关注本教程,并且有这个文件结构:

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

一切都按预期工作。

.htaccess 如下所示:

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

我对 .htaccess 了解不多,但我想这会将 URI 重新路由到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保持原样
  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 重新路由到索引的查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM