我正在尝试写一个.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(使用前将#替换为@)