URL重写规则
问题描述:
我试图写在.htaccess文件“重写规则”URL重写规则
我有名字go.php我的服务器上的PHP文件
该文件是使用转发/重定向到提供的url /链接
例如:mydomian.com/go.php?url= http://www.google.com/
它可以完美的,但 我想让它像mydomain.com/? http://www.google.com/
我的htaccess代码
RewriteRule ^/(.*)$ go.php?url=$1 [L,QSA]
这一个不工作,然后我试图
RewriteRule ^/?(.*)$ go.php?url=$1 [L]
答
您可以在DOCUMENT_ROOT/.htaccess
文件中使用此代码:
RewriteEngine On
RewriteBase/
RewriteCond %{QUERY_STRING} .+
RewriteRule ^/?$ go.php?url=%{QUERY_STRING} [L]
QUERY_STRING
是自动进行转发到新的URI。
答
与第二个问题是,问号是一个正则表达式特殊字符实际上意味着“如果存在的话。“因此,第二个示例将不起作用,因为它说的URI 可能是以斜杠开头。
这是未经测试的,但我认为它应该像转义问号一样简单,以便将其视为字符。像这样:
RewriteRule ^/\?(.*)$ go.php?url=$1 [L]
请注意在将问号标识为字符串而不是特殊字符之前的额外斜杠。
+0
感谢您的有趣答案,但它不工作:(它显示索引文件的目录 – 2014-10-19 18:39:09
它很好,你看到你兄弟 我已经尝试过你提供的代码,但如果给出请求的网址/go.php在此服务器上找不到和index.php也闪烁 – 2014-10-19 18:33:03
但你写道:'mydomian.com/go.php?url = http:// www.google.com /'是一个工作的网址 – anubhava 2014-10-19 18:34:47
是的,目前我在本地和本地测试它链接是http://localhost/folder/go.phpp?url = http://www.google.com/ 其工作:( – 2014-10-19 18:37:07