请帮助我编写正确的.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/?expam =
我希望以下链接可以像上面一样工作,而不是使用查询字符串链接:
www.mydomain.com/hp-certification /
www.mydomain.com/cisco-certification /
www.mydomain.com/oracle-exam-prep /
www.mydomain.com/faq /
www.mydomain.com/support /
等等。
答案 0 :(得分:1)
您的链接应该与此www.mydomain.com/?exam=hp-certification/
类似,并且重写规则在.htaccess
文件中会这样。
RewriteEngine On
RewriteRule ^([^/.]+)$ /?exam=$1 [L]
答案 1 :(得分:0)
您可以使用<!DOCTYPE html >
<html>
<head>
<title></title>
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico" />
</head>
<body>
<header>
<img src="http://via.placeholder.com/300x100" id = "logo" alt = "Antomatik logo"/>
</header>
<div id = "menu">
<ul>
<li class="onama">
<a href="antomatik/onama.html">O nama</a></li>
<li class="povijest">
<a href="antomatik/povijest.html">Povijest</a></li>
<li class="kontakt">
<a href="antomatik/kontakt.html">Kontakt</a></li>
</ul>
</div>
<footer>
</footer>
</body>
</html>
文件中的以下规则来执行此操作:
.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的末尾。
确保在>>测试之前清除缓存。