首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mod.rewrite多个规则相同的目录

mod.rewrite多个规则相同的目录
EN

Stack Overflow用户
提问于 2013-03-06 08:39:35
回答 1查看 67关注 0票数 1

我正在使用下面的代码...

代码语言:javascript
运行
复制
#Fix Rewrite
Options -Multiviews

# Mod Rewrite
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)?$ index.php?q=$1 [L]

www.website.com/index.php?q=Keyword转换为www.website.com/Keyword

它能在great....however上工作...

我(在同一目录中)还有一个名为spec.php的文件,它接受eidGET变量。

我还需要一个规则来将www.website.com/spec.php?eid=00000转换为www.website.com/00000www.website.com/spec/00000,而不实际将spec.php移动到子目录中。

任何帮助都会非常感谢,我的眼睛被谷歌灼伤了。我发现其中一些做了类似的事情,但当我试图将其与我的情况相匹配时,我遇到了问题。

EN

Stack Overflow用户

回答已采纳

发布于 2013-03-06 10:02:29

所以这里的这行

代码语言:javascript
运行
复制
RewriteRule ^(.*)?$ index.php?q=$1 [L]

都是匹配的,如果你想让website.com/Keywordwebsite.com/spec/0000都工作,那么你需要添加另一个条件

我想这能行得通

代码语言:javascript
运行
复制
RewriteRule ^/spec/(.+)$ /spec.php?eid=$1 [L]
RewriteRule ^(.*)?$ /index.php?q=$1 [L]

这句话是什么来着?

第一部分是一个正则表达式,第二部分是要映射到的URL,最后一部分是标志。在本例中,我们将/spec/条件放在第一位,这样当第二个条件与其他所有条件匹配时,它将首先被命中,然后确保[L]标志被设置为如果当前条件匹配,则通知mod_rewrite停止。

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

https://stackoverflow.com/questions/15236899

复制
相关文章

相似问题

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