首页 > 解决方案 > 如何使 .htaccess 将所有请求从 url 重定向到 get.php?u= 但不包括现有文件

问题描述

我是新手.htaccess,我遇到了一个我无法解决的问题。

我有我的网站 URL(对于此示例https://example.com),并且我希望每次访问https://example.com/example时都重定向到,get.php?u=example但如果它是真实文件,则排除重定向,例如:https://example.com/index.html.

我尝试过使用重定向和异常,但它们都不起作用。

标签: javascriptphphtml.htaccess

解决方案


您可以在.htaccess文件顶部使用 mod_rewrite。例如:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /get.php?u=$1 [R,L]

这会发出一个临时 (302) 重定向,将表单的 URL 重定向/example/get.php?u=example,除非/example映射到文件系统上的物理文件。(目录仍将被重定向。)

但是,如果您想改写URL(即不要更改浏览器地址栏中的 URL),则将RewriteRule指令更改为:

RewriteRule (.*) get.php?u=$1 [L]

IE。删除R( redirect) 标志和斜杠前缀(这不是必需的)。


推荐阅读