2014-10-19 188 views
1

我试图写在.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] 

回答

1

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

RewriteEngine On 
RewriteBase/

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

QUERY_STRING是自动进行转发到新的URI。

+0

它很好,你看到你兄弟 我已经尝试过你提供的代码,但如果给出请求的网址/go.php在此服务器上找不到和index.php也闪烁 – 2014-10-19 18:33:03

+0

但你写道:'mydomian.com/go.php?url = http:// www.google.com /'是一个工作的网址 – anubhava 2014-10-19 18:34:47

+0

是的,目前我在本地和本地测试它链接是http://localhost/folder/go.phpp?url = http://www.google.com/ 其工作:( – 2014-10-19 18:37:07

0

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

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

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

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

+0

感谢您的有趣答案,但它不工作:(它显示索引文件的目录 – 2014-10-19 18:39:09