URL重写规则

时间:2014-10-19 17:56:47

标签: apache .htaccess mod-rewrite redirect url-rewriting

我试图在.htaccess文件中写“重写规则”

我的服务器上的php文件名为go.php

此文件用于转发/重定向到提供的网址/链接

例如: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]

2 个答案:

答案 0 :(得分:1)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} .+
RewriteRule ^/?$ go.php?url=%{QUERY_STRING} [L]

QUERY_STRING会自动转发到新的URI。

答案 1 :(得分:0)

第二个问题是问号是一个正则表达式特殊字符,实际上意味着“如果它存在”。所以第二个例子不起作用,因为它说URI 可能以斜杠开头。

这是未经测试的,但我认为它应该像转义问号一样简单,以便将其视为一个字符。像这样:

RewriteRule ^/\?(.*)$ go.php?url=$1 [L]

请注意问号前面的额外斜杠,它将其标识为字符串而不是特殊字符。