请帮助我编写正确的.htaccess
代码以获得所需的结果。
我有以下页面:
www.mydomain.com/?exam=/hp-certification/
www.mydomain.com/?exam=/cisco-certification/
www.mydomain.com/?exam=/oracle-exam-prep/
www.mydomain.com/?exam=/faq/
www.mydomain.com/?exam=/support/
还有更多页面,但您可以注意到固定部分是:www.mydomain.com/?exam =
而不是使用查询字符串链接,我希望以下以上页面工作:
www.mydomain.com/hp-certification/
www.mydomain.com/cisco-certification/
www.mydomain.com/oracle-exam-prep/
www.mydomain.com/faq/
www.mydomain.com/support/
等等。
您的链接应该像此www.mydomain.com/?exam=hp-certification/
一样,重写规则会在.htaccess
文件中喜欢。
RewriteEngine On
RewriteRule ^([^/.]+)$ /?exam=$1 [L]
您可以使用.htaccess
文件中的以下规则来做到这一点:
RewriteEngine On
RewriteCond %{QUERY_STRING} exam=(.+) [NC]
RewriteRule ^(.*)$ http://www.example.com/%1? [R=301,NC,L]
那么上述功能?
首先,它将以查询exam=
为条件,如果满足此条件,则将使用(.+)
。
然后,它将使用301重定向重写URL以显示http://www.example.com/anything/
。%1
的使用是从exam=
获取变量,然后我们使用?
阻止原始查询字符串出现在新重写URL的末尾。
确保在测试此之前清除缓存。