我需要为我的网站清理网址。 结构是这样的:
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
,它可以正常使用!
我该如何解决这个问题?
答案 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]