如何在htaccess中重写html url作为目录

时间:2014-08-10 14:57:12

标签: php html .htaccess mod-rewrite

我想将所有类别网址重写为目录而不是长html网页。我怎么做? (如果您需要进一步了解目录结构以了解它目前的工作原理,该网站是homewetbar.com。)

例如:

第一级别类别:

www.site.com/great-gift-ideas-c-35.html

我想将其显示为: www.site.com/great-gift-ideas-c-35

二级别类别:

www.site.com/great-gift-ideas-gifts-recipient-c-35_85.html

我想将其显示为: www.site.com/great-gift-ideas/gifts-recipient-c-35_85

第三级类别:

www.site.com/gifts-recipient/groomsmen-gifts-c-35_85_43.html

我想将其显示为: www.site.com/gifts-recipient/groomsmen-gifts-c-35_85_43

OR: www.site.com/great-gift-ideas/gifts-recipient/groomsmen-gifts-c-35_85_43(以较容易的方式)

3 个答案:

答案 0 :(得分:0)

我认为你正在寻找mod_rewrite,here is a link如何设置它以及如何开始重写你的网址。它应该有足够的信息来满足您的需求,对于更高级的内容,您需要了解更多有关正则表达式的信息,但您的示例非常简单。

RewriteEngine on
RewriteRule ^great-gift-ideas-c-35.html$ great-gift-ideas-c-35

这应该适用于您的第一个示例,其余的只是替换相应的URL。

答案 1 :(得分:0)

您需要重写网站中的所有href以删除“.html”部分。然后,将其添加到.htaccess

RewriteEngine on
RewriteCond ${REQUEST_FILENAME} !-d
RewriteCond ${REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ $1.html [L]

这样可以使任何没有“.html”的URL工作,就像它有了它一样

答案 2 :(得分:0)

只需查看此网站:http://www.generateit.net/mod-rewrite/index.php即可生成所需内容

RewriteEngine On
RewriteRule ^([^/]*)$ /?example=$1 [L]

将示例更改为您需要的示例