使用htaccess的重写URL重写、htaccess、URL

2023-09-02 11:40:14 作者:人不得瑟ˇ枉少年

如何使用htaccess的可以更改URL以这种方式:

http://example.com/page.php?go= 东西的.php

应该被重定向到:

http://example.com/ 的东西

怎样重写URL

如果把GET参数的名称比走出去离开,因为它是不同的...

解决方案

这应该做的:

 #假设RewriteEngine叙述上已被称为
的RewriteCond%{QUERY_STRING} ^(*&安培;。)去=([AZ] +) PHP(安培;。*)?。?$
重写规则page.php%2?
 

在这里有什么会发生?首先,的RewriteCond包含查询字符串相匹配的去= something.php ,其中东西是由捕获(即[az] +)。然后重写规则使用来自的RewriteCond第二捕获组的内容,含有something.php。问号在年底摆脱了原来的查询字符串。

请注意:如果你想preserve查询字符串中不包括去= ... 参数的休息,事情就变得复杂了一点。

见 http://httpd.apache.org/docs/的文档2.2 / MOD / mod_rewrite.html 获取更多的信息。

How can I change url in this way using htaccess:

http://example.com/page.php?go=something.php

should be redirected to:

http://example.com/something

If the get parameter name is different than 'go' leave as it is...

解决方案

This should do:

# Assuming that "RewriteEngine On" has already been called
RewriteCond %{QUERY_STRING} ^(.*&)?go=([a-z]+).php(&.*)?$
RewriteRule page.php %2?

What happens here? First, RewriteCond matches a query string that contains the go=something.php, where "something" is captured by ([a-z]+). Then the RewriteRule uses the second capture group's contents from RewriteCond, containing "something.php". The question mark at the end gets rid of the original query string.

Note: if you want to preserve the rest of the query string excluding go=... parameter, things get a bit more complicated.

See the docs in http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html for more info.

 
精彩推荐
图片推荐