这就是我想要完成的事情:
http://example.com/real-estate/?group=rentals 需要去 http://example.com/real-estate/rentals
这就是我的.htaccess中没有的功能:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/real-estate/ [NC]
RewriteCond %{QUERY_STRING} ^group=rentals
RewriteRule (.*) http://example.com/real-estate/rentals/? [NC,R=301,L]
</IfModule>
答案 0 :(得分:0)
这是非常不寻常的...通常人们想要反向重定向....
你的代码看起来很好,只有一些小的修正。但那些可能是你所缺少的:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/real-estate/?$ [NC]
RewriteCond %{QUERY_STRING} ^group=rentals$
RewriteRule ^ http://example.com/real-estate/rentals [R=301,L]
</IfModule>
要使其工作,必须将规则直接放在http主机配置中,或者放在hosts文档根目录中的.htaccess
样式文件中,并启用对此类文件的解释。
一般提示:您应该始终更喜欢将此类规则放在http服务器主机配置中,而不是使用.htaccess
样式文件。这些文件非常容易出错,难以调试,它们确实会降低服务器的速度。它们仅作为最后一个选项提供给您无法控制主机配置的情况(阅读:非常便宜的托管服务提供商),或者您有一个依赖于编写自己的重写规则的应用程序(这是一个明显的安全噩梦) )。
答案 1 :(得分:0)
只需在.htaccess
文件中使用此功能:
RewriteEngine On
RewriteRule ^real-estate/([^/]*)$ /real-estate/?group=$1 [L]
它将为您留下网址:http://example.com/real-estate/rentals
。在测试之前,请确保清除缓存。