如何解决重定向文件名中包含“?”字符的URL
|| 我是php / mysql新手开发人员,需要一些帮助。 我正在与.NET开发人员一起进行项目。他在.NET中建立了URL重定向功能,该功能使用URL中的“ 0”(例如,“ 1”重定向到“ 2”。该开发人员现在已经消失在我的身上,我不再可以访问服务器。 我需要将域移到新服务器上,并在php / mySQL中重新创建此功能。使用此技术,我需要支持大约40个网址(它们已嵌入QR码中)。我不需要以这种方式生成新重定向的解决方案-我已经有了另一种解决方案。 我的新服务器将位于bluehost上。 非常感谢任何可以帮助我的人。解决方法
要复制原始设置,您根本不需要使用PHP。您可以使用一些
RewriteRules
在服务器级别完成此操作:
RewriteCond %{QUERY_STRING} ^123$
RewriteRule ^$ http://realsite.com/
另请参见http://wiki.apache.org/httpd/RewriteQueryString
,查询字符串可在$_SERVER[\'QUERY_STRING\']
中找到。
,在mysite.com
域的旧主机上,在DOCUMENT_ROOT中创建一个.htaccess文件,如下所示:
Options +FollowSymlinks -MultiViews
RewriteEngine on
# for HTTP traffic
RewriteCond %{QUERY_STRING} !^$
RewriteCond %{SERVER_PORT} =80
RewriteRule ^/?$ http://www.realsite.com/? [R=301,L]
# for HTTPS traffic
RewriteCond %{QUERY_STRING} !^$
RewriteCond %{SERVER_PORT} =443
RewriteRule ^/?$ https://www.realsite.com/? [R=301,L]
上面的代码将使用HTTP状态代码301将每个看起来像“ 8”的URI重定向到“ 9”。
最后的“ 0”将丢弃任何现有的QUERY字符串。
,http://example.com?123
相当于做
http://example.com/index.php?123
您可以选择通过mod_rewrite捕获这些代码,然后将请求重定向到专门为处理这些旧网址而设置的脚本。或者,您可以修改index.php脚本以查找代码,然后执行此操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。