在.htaccess中设置重定向并保留路径

时间:2017-05-27 16:53:30

标签: php .htaccess cpanel

我需要在htaccess中设置重定向。 我的htaccess在下面给出

RewriteEngine on
# If a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# Otherwise forward it to index.php
RewriteRule . frontend/web/index.php

因此它将所有请求重定向到frontend / web / index.php

但问题是假设以下请求来自/ site / about 目前使用上述规则frontend / web / index.php未接收路径参数。即。 / site / about正在重定向到

我需要路径参数作为路径参数本身在frontend / web / index.php

.IE。 / site / about应映射到/frontend/web/index.php/site/about 路径部分也是动态的。即它可以是网站/服务

之类的东西

我如何在htaccess中执行该规则。我已经检查了一些其他解决方案,但大多数人都说要将路径参数映射到查询字符串,而我根据我的网站设置无法进行查询。

2 个答案:

答案 0 :(得分:1)

您需要将原始路径附加到新路径:

RewriteRule (.*) frontend/web/index.php/$1

答案 1 :(得分:1)

正如@Rickdenhaan所说,您需要将请求路径附加到目标网址。您可以使用%{REQUEST_URI}变量或在重写目标末尾使用backrefrence来添加它。

将您的RewriteRule行更改为:

RewriteRule . frontend/web/index.php%{REQUEST_URI} [L]