自动重写URL .htaccess

时间:2016-06-24 13:14:58

标签: apache .htaccess mod-rewrite url-rewriting

我需要为我的网站清理网址。 结构是这样的:

example.com/home

在我的主文件夹中:

index.php 
ambiente.php
.htaccess

这是我的.htaccess代码:

Options +FollowSymLinks -MultiViews 
RewriteEngine On

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+ambiente\.php\?ambiente=([^\s&]+) [NC] 
RewriteRule ^ ambiente/%1? [R=301,L]

RewriteRule ^ambiente/([^/]+)/?$ ambiente.php?ambiente=$1 [L,QSA]

我希望文件这样做:

example.com/home/ambiente.php?ambiente=living

example.com/home/ambiente/living

问题是网址不会自动重写。

如果我点击索引文件中的ambiente.php?ambiente=living链接,我会在地址栏中找到example.com/home/ambiente.php?ambiente=living

如果我在地址栏中写道:http://example.com/home/ambiente/living,它可以正常使用!

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您的重写条件与/ambiente.php?ambiente=foobar匹配但与orignal uri /home/ambiente.php?ambiente=foobar不匹配将您的第一个rewriteRule替换为以下

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+home/ambiente\.php\?ambiente=([^\s&]+) [NC]
RewriteRule ^  /home/ambiente/%1? [R=301,L]