如何在.htaccess中重定向而不更改URL栏

时间:2017-10-21 14:59:08

标签: php .htaccess

如何在不更改URL栏的情况下使用.htaccess在内部将请求重定向到特定页面。

实施例: 我想将所有404错误重定向到handle_controller.php。

我做了以下事情:

RewriteCond %{REQUEST_FILENAME} !-d [NC
RewriteCond %{REQUEST_FILENAME} !-f  [NC]
RewriteRule (.*) handle_controller.php?p=$1 [NC, R]

它正在重定向,但它会不断更新URL栏。 例如:

我请求invalid.php重定向到handle_controller.php?p = invalid.php

如何将内部重定向到handle_controller.php,同时将URL栏保持为invalid.php

我使用的是R = 301和R = 302,但它无效。

1 个答案:

答案 0 :(得分:0)

使用:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) handle_controller.php?p=$1 [L]

[NC]没有可供比较的文字时没用 使用[R],它是一个重定向,而不仅仅是重写。