我正在尝试在网址serve_each_drive.php
drive_for_london/?pid=12
中完成一些工作
这是我的.htaccess
:
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteRule ^drive_for_(.*)/$ http://web228.sydney.webhoster.ag/soputnik/serve_each_drive.php [L]
我想保留网址drive_for_london/?pid=12
并在后台完成工作。但上面的规则是将我重定向到serve_each_drive.php
。网址正在变为:
http://web228.sydney.webhoster.ag/soputnik/serve_each_drive.php
为什么呢?请帮忙
答案 0 :(得分:1)
是的,这是正确的mod_rewrite行为,如果目标中有完整的URL,目标URL将从外部重定向(因此也会在浏览器中更改)。由于您的目标网址以http://
开头,因此会发生此重定向。
要防止此行为,您需要:
所以用这个改变你的代码:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^pid=.+ [NC]
RewriteRule ^drive_for_(.*?)/$ /soputnik/serve_each_drive.php [L,NC]
另请注意,上面的代码假定您网页上的网址为:http://web228.sydney.webhoster.ag/drive_for_london/?pid=12
,并且会在内部转发到:http://web228.sydney.webhoster.ag/soputnik/serve_each_drive.php?pid=12