首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过mod-rewrite传递变量类型

通过mod-rewrite传递变量类型
EN

Stack Overflow用户
提问于 2009-08-23 16:44:32
回答 2查看 193关注 0票数 1

你好,我有一个关于htaccess mod_rewrite的问题,也许这里有人可以指出正确的方向。

我的网站有一个主文件index.php所有的导航都是通过在url字符串中传递变量来完成的,例如

代码语言:javascript
复制
index.php?page=about

这与我的.htaccess下面的工作正常

代码语言:javascript
复制
domain.com/about

有些页面有第二个变量,例如

代码语言:javascript
复制
index.php?page=event&eventID=42

这也适用于下面的.htaccess

代码语言:javascript
复制
domain.com/event/42

我的问题是,我还有其他页面也需要变量,例如

代码语言:javascript
复制
index.php?page=news&newsID=4
domain.com/news/42

index.php?page=map&venueID=4
domain.com/map/42

有可能做到这一点吗?

提前感谢

.k

.htaccess

代码语言:javascript
复制
Options +FollowSymLinks

RewriteEngine On

RewriteRule ^([^/\.]+)/*$ /index.php?page=$1 [L]
RewriteRule ^([^/\.]+)/*([^/\.]+)/*$ /index.php?page=$1&eventType=$2 [L]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-08-23 16:49:49

当然可以,就这么做吧

代码语言:javascript
复制
RewriteRule ^([^/\.]+)/*$ /index.php?page=$1 [L]
RewriteRule ^event/([^/\.]+)/*$ /index.php?page=event&eventType=$1 [L]
RewriteRule ^news/([^/\.]+)/*$ /index.php?page=news&newsID=$1 [L]
RewriteRule ^map/([^/\.]+)/*$ /index.php?page=map&venueID=$1 [L]
票数 3
EN

Stack Overflow用户

发布于 2009-08-23 16:55:29

试试这些规则:

代码语言:javascript
复制
RewriteRule ^([^/.]+)/?$ /index.php?page=$1 [L]
RewriteRule ^map/([^/.]+)/?$ /index.php?page=map&venueID=$1 [L]
RewriteRule ^([^/.]+)/([^/.]+)/?$ /index.php?page=$1&$1ID=$2 [L]

您的/map/… URL需要单独的规则,因为URL参数不是mapID,而是venueID。但其余部分应由第三条规则涵盖。但是,如果您只将ID参数称为id,这肯定会更容易。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1318983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档