我很难开始使用mod_rewrite。我一直在这里约一小时谷歌搜索的东西,但似乎没有任何工作。我想要做的就是改变
example.com/species.php到example.com/species
也
example.com/species.php?name=frog到example.com/species/frog。Mod_Rewrite到/子目录和/子目录/查询
使用
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^species/(.*)$ /species.php?name=$1
我能得到example.com/species.php?name=frog显示为example.com/species/frog,并与
RewriteRule ^species/ /species.php
我可以得到例如.com/species.php显示为example.com/species/,但我无法让他们两人同时工作。
此外,没有结尾斜杠的example.com/species总是以404的形式出现。
我认为只是让一个/种类/目录来解决任何问题,但我宁愿只有一个物种的一些规则.php文件。任何帮助将很乐意被赞赏!
编辑(因为我不能回答我自己8个多小时的问题):
我似乎有固定我的两个问题。我改变了我的.htaccess到:
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^species/(.*)$ /species.php?name=$1
RewriteRule ^species/?$ /species.php
第二重写规则成功地重定向example.com/species,同时使其他重写规则,同时努力example.com/species.php。
但是,如果我在example.com/species/中输入了斜线,则它将被读为example.com/species.php?name=,并且会因为没有提交名称而引发错误,所以我只是添加了
if(isset($_GET['name']) && empty($_GET['name'])) {header('location: http://example.com/species');}
因此,如果我使用example.com/species/,它会重定向到/物种并按需要工作。