我已经嗅了很多关于mod_rewrite的帖子,结果比我想象的要复杂得多。
我要做的是以下内容。 我有10个城市有活动,每个城市应该有自己的“目录”,例如: site.com/toronto/ site.com/chicago /
事件最多可包含3个子级别,例如
site.com/toronto/musiccamp/sub18
site.com/chicago/bootcamp
我需要将这些网址映射到网页
site.com/camps/index.php?city=toronto&type=musiccamp&ages=sub18
site.com/camps/index.php?city=chicago&type=bootcamp
其他目录,例如 site.com/about - site.com/help等 不应该改写。
这必须在.htaccess文件中。
到目前为止,我得到了这个(在godaddy服务器中)
#Fix Rewrite
Options -Multiviews
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /test/index.php?option1=$1 [L]
但是我无法将选项传递给index.php ......它们总是为空...
答案 0 :(得分:1)
最后,这是我个案中最有效的方法
#Fix Rewrite
Options -Multiviews
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /test/index.php?option1=%{REQUEST_URI}
这样,任何不存在的路径都会被重写到/test/index.php文件,并可以从那里处理。
传递REQUEST_URI允许我深度构建N级并让index.php文件解析出来。
希望这有助于某人。