我有一个非常简单的图库脚本。
索引页面(php)根据url参数加载缩略图视图中的所有图片。我正在尝试使用重写规则来掩盖网址,使它们看起来更好,但我遇到了问题。
索引页面需要a=gallery&name={name of gallery}
重写的工作范围是它将网址重写为/gallery/{name of gallery}
问题是我得到了/gallery/{name of gallery}/?a=gallery&name={name of gallery}
,这显然是不希望的,也是多余的。
这是我的规则,我一直在搞乱这个问题而且我已经厌倦了查看文档而只是想完成它。
# enables rewrite engine
RewriteEngine on
# we always direct requests to the www subdomain
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
# some url rewriting
RewriteRule ^([^/\.]+)$ ?a=$1 [L]
RewriteRule ^([^/\.]+)/$ ?a=$1 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)$ ?a=$1&name=$2 [L]
RewriteRule ^([^/\.]+)/([^/\.]+)/$ ?a=$1&name=$2 [L]
编辑:添加完整的htaccess文件...
答案 0 :(得分:0)
以这种方式试试看看它是如何运作的。
# enables rewrite engine
RewriteEngine on
# we always direct requests to the www subdomain
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_URI} ^/gallery
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+) index.php?url=$1&name=$2 [PT,L]
RewriteCond %{REQUEST_URI} ^/gallery
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+) index.php?url=$1 [PT,L]