首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试高级htaccess重写技巧,有困难

尝试高级htaccess重写技巧,有困难
EN

Stack Overflow用户
提问于 2009-09-25 15:59:37
回答 3查看 214关注 0票数 1

嘿,伙计们,我想说的是:

我想要这样做,这样我就可以将所有url变量和值转换为文件夹,所有这些都有一个规则。我本来想找个办法这样做的:

www.example.com/var1/val1/var2/val2/varN/valN

在一个理想的世界里,我可以重写它:

www.example.com/index.php?var1=val1&var2=val2&varN=valN

但我也很乐意做这样的事:

www.example.com/index.php?path=/var1/val1/var2/val2/varN/valN

然后在PHP中将它们工作到数组或结构中。在我的例子中,一切都通过index.php工作,所以这是一个常量。

有办法这样做吗?我在谷歌上找不到任何东西,显然我自己也想不出来!

谢谢各位:-)

EN

回答 3

Stack Overflow用户

发布于 2009-09-25 16:23:39

这是从我的主要apache中的<Directory>指令中逐字复制的内容。我一直无法做到这一点,但也应该在.htaccess中工作(可能没有<Directory>部件)。

代码语言:javascript
复制
<Directory /path/to/document/root/>
    RewriteEngine On
    RewriteRule ^(.*)$ index.php?path=$1 [QSA]
</Directory>

URL http://www.any.com/foo/bar/baz/spam/eggs应该变成http://www.any.com/index.php?path=/foo/bar/baz/spam/eggs

票数 0
EN

Stack Overflow用户

发布于 2009-09-25 19:00:18

试试这条规则:

代码语言:javascript
复制
RewriteEngine on
RewriteRule !^index\.php$ index.php?path=%{REQUEST_URI} [L]

它将重写除index.php以外的任何请求到index.php

如果要排除现有文件和目录,请将这些RewriteCond指令添加到您的规则中:

代码语言:javascript
复制
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !^index\.php$ index.php?path=%{REQUEST_URI} [L]

这是前一种格式的一条规则,除了参数有表单var[]之外

代码语言:javascript
复制
RewriteRule ^([^/]+)/([^/]+)(.*)$ /$3?$1[]=$2 [N,QSA]
票数 0
EN

Stack Overflow用户

发布于 2009-09-25 21:21:10

秋葵,我真的很喜欢这个解决方案,它工作得很好:

RewriteRule ^(^/+)/(^/+)(.*)$ /$3?$1[]=$2N,QSA

我有一种感觉,我需要把像!(js\css)这样的东西放在里面,以排除那些文件夹,但我不知道在哪里,我尝试了几个地方,但没有结果。你对此有什么调整吗?再次感谢凶手的解决方案!

编辑:我发现了,或者说找到了!我把这个放在重写规则之前:

RewriteCond %{REQUEST_FILENAME} !^(.+).css$

RewriteCond %{REQUEST_FILENAME} !^(.+).js$

最后,它看起来像这样,工作非常完美:

RewriteCond %{REQUEST_FILENAME} !^(.+).css$

RewriteCond %{REQUEST_FILENAME} !^(.+).js$

RewriteRule ^(^/+)/(^/+)(.*)$ /$3?$1[]=$2N,QSA

这个解决方案中我最喜欢的一点是我可以传递url数组,因此:

www.any.com/var1/val1/var1/val2/

实际创建

$var1=数组(“val1”,"val2");

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

https://stackoverflow.com/questions/1478176

复制
相关文章

相似问题

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