使用htaccess文件格式化URL


URL formatting using htaccess file

我想为我的网站制作自定义url,例如我想要类似的url

http://www.mysite.com/first-link-page/
http://www.mysite.com/second-link-page/

这里,第一个链接页面,第二个链接页面,。。。etc不是每个链接的文件夹。它是使用.htaccess文件动态生成的页面。我使用了一个comman templet文件,我将变量传递到该文件(例如,像第一个链接页面这样的值),并基于该页面进行显示。在.htaccess文件中,我使用以下代码

RewriteEngine on
RewriteRule ^([^/.]+)/$ mytemplet.php?parameter=$1 [QSA,L]

这很好用。但如果在浏览器中用户键入

http://www.mysite.com/first-link-page    //without slash at ending
http://www.mysite.com/second-link-page

它给出了找不到页面的错误。我希望.htaccess在末尾自动添加斜杠,这样我的url就可以正常工作了。我该怎么做。请帮忙。

提前谢谢。。

要使正则表达式中的单个字符可选,只需在其前面打一个问号。

这会让你重写;

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

请注意/后面的问号,您希望与您的URL进行选择性匹配。

重写规则的问题是,只有在末尾找到斜杠时,它才能工作。要修改此项,您应该使斜杠可选,如:

RewriteEngine on
RewriteRule ^([^/.]+)/?$ mytemplet.php?parameter=$1 [QSA,L]