.htaccess 重定向而不更改地址栏

2023-12-27

我正在尝试写一个.htaccess规则重定向到脚本,该脚本进一步重定向到其他地方。有点像 URL 缩短器的工作原理。但是,我don't希望地址栏在.htaccess重定向的一部分。 (脚本重定向改变位置是可以的。)

我在用着mod_rewrite,目前正在这样做:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteBase /
RewriteRule (.+)$ "?url=$1" [L,R=301]

是否有一个标志或其他方法可以用来实现我想要做的事情?

Addenda:当发生重定向时,Firefox 中的地址栏不会改变,这正是我想要做的。它只改变一次以反映终点。Safari 每一步都会改变它。有什么办法可以避免这种情况吗?


如果您正在使用R你正在告诉的标志mod_rewrite外部重定向是您想要的,因此浏览器会被要求发出新请求,并且地址栏应相应更改。

如果没有R标志,没有重定向,但 Apache 内部请求重写对浏览器隐藏。因此,地址栏不会改变。但是,出于显而易见的原因,您不能使用到外部 URI 的内部重定向。

由于您似乎无论如何都使用内部重定向,因此只需删除R标志并且它应该起作用:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+)$ ?url=$1 [L]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

.htaccess 重定向而不更改地址栏 的相关文章

随机推荐