.htaccess在不更改地址栏的情况下重定向
我正在尝试编写一个.htaccess在不更改地址栏的情况下重定向,.htaccess,redirect,http-status-code-301,.htaccess,Redirect,Http Status Code 301,我正在尝试编写一个.htaccess规则来重定向到脚本,该脚本将进一步重定向到其他地方。有点像URL缩短器的工作原理。但是,我不希望在重定向的.htaccess部分期间更改地址栏。(脚本重定向可以更改位置。) 我正在使用mod_rewrite,目前正在执行以下操作: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteBase / RewriteRule (.+)$ "?url=$1" [L,R=301] 是否有一个标志或其
.htaccess
规则来重定向到脚本,该脚本将进一步重定向到其他地方。有点像URL缩短器的工作原理。但是,我不希望在重定向的.htaccess
部分期间更改地址栏。(脚本重定向可以更改位置。)
我正在使用mod_rewrite
,目前正在执行以下操作:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteBase /
RewriteRule (.+)$ "?url=$1" [L,R=301]
是否有一个标志或其他方法,我可以用来实现我想做的事
附录:当重定向发生时,Firefox中的位置栏不会改变,这正是我想要做的。它只改变一次以反映终点Safari在每一步都会更改它。有什么办法可以避免吗?如果您使用
R
标志,您告诉mod_rewrite
您需要外部重定向,因此浏览器会被要求发出新请求,地址栏也会相应地更改
如果没有R
标志,就没有重定向,只有一个Apache内部请求重写,它对浏览器是隐藏的。因此,地址栏不会改变。但是,由于明显的原因,您不能使用指向外部URI的内部重定向
由于您似乎仍在使用内部重定向,只需删除R
标志,它就可以工作了:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+)$ ?url=$1 [L]
对于外部URI,您可以使用标志[P]代理它