【发布时间】:2011-07-18 08:54:23
【问题描述】:
TL;DR
如何让.htaccess 将http://domain.com/images 重写为http://domain.com/images/(即在没有斜杠的情况下向URL 添加斜杠)? URL 可以比一层更深,例如http://domain.com/images/page/1。
更多信息
假设我有一个这样的网址:
http://jamwaffles2/wallpapers
这将在 URL 栏中重定向到这个,重写规则工作正常:
http://jamwaffles2/wallpapers/?page=wallpapers
然而
http://jamwaffles2/wallpapers/(注意斜线)
改写成
http://jamwaffles2/index.php?page=wallpapers(用户不可见)
地址栏中有一个漂亮的http://jamwaffles2/wallpapers/。
这里的问题是,当 URL 没有尾部斜杠时,地址栏中的 URL 会变成一个不太漂亮的 URL。有人可以提供解决方案吗?
这是我的 .htaccess:
# turn rewriting on
RewriteEngine on
RedirectMatch permanent ^/$ http://jamwaffles2/home
Options +FollowSymLinks
RewriteRule ^([^/\.]+)/?$ /index.php?page=$1 [L,NC,QSA]
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index.php?page=$1&var1=$2 [L,NC,QSA]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ /index.php?page=$1&var1=$2&var2=$3 [L,NC,QSA]
RewriteRule ^([^/\.]+)/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ /index.php?page=$1&var1=$2&var2=$3&var3=$4 [L,NC,QSA]
附带说明,URL 有更多级别; .htaccess 应该使这一点显而易见(例如http://jamwaffles2/home/page/2)。
编辑
奇怪的是,这只发生在/wallpapers。如果我输入http://jamwaffles2/home,它会按预期工作,但不适用于http://jamwaffles2/wallpapers。
【问题讨论】:
-
您是否有名为
wallpapers.php或类似名称的文件? -
我愿意,这就是这个 .htacces 应该通过
/index.php打开的内容。它适用于与wallpapers.php相同目录中的页面,例如home.php.
标签: .htaccess