使用htaccess文件进行URL格式化

时间:2012-03-02 07:08:55

标签: php .htaccess

我想为我的网站制作自定义网址,例如我想要网址

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

此处,first-link-page,second-link-page,... etc不是每个链接的文件夹。它是使用.htaccess文件动态生成的页面。我使用comman模板文件,我传递varibles(例如,像第一个链接页面的值),并基于该页面显示。在.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在结尾处自动添加斜杠,以便我的网址正常工作。我怎么做。请帮助。

提前致谢..

2 个答案:

答案 0 :(得分:3)

To make a single character optional in a regex, just put a question mark efter it.

这将使你的重写;

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

请注意/您希望可选择与您的网址匹配后的问号。

答案 1 :(得分:1)

重写规则的问题在于,只有在最后找到斜杠时它才会起作用。要修改它,你应该使斜杠可选,如:

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