2010-01-18 74 views
2

我对PHP很陌生,刚开始使用mod_rewrite。我知道基本的行话不过来卡住时,我想简单地引用路径目录mod_rewrite问题

即这不是probs

重写规则^设置/ $的settings.php [QSA,L]

但如何,例如使:

重写规则^页/(.*)$ index.php页面= $ 1 [QSA,L]

生成/页/ [页面名称]

只是变成

/[页面名称]

+0

Apache配置问题应该在serverfault上。 – hobodave 2010-01-18 04:39:16

+0

@hobodave:不一定。 Jeff Attwood的观点是“如果你的职位名称中包含'程序员'这个词,那么就用Stack Overflow吧,”我希望他的意见能够成为一件事。请参阅http://meta.stackexchange.com/questions/6235/apache-configuration-htaccess-questions-esp-modrewrite-so-or-sf – outis 2010-01-18 05:44:56

+0

@outis:他的观点显然不包括在内。他没有赞扬,而那些说“属于SF”的人做到了。 :P无论如何,这就是我们投票的原因。当我投票结束时,我留下一个解释;这不是一个辩论的邀请。 – hobodave 2010-01-18 05:51:00

回答

1

这应做到:

RewriteRule ^(.*/)$ index.php?Page=$1 [QSA,L] 

但是,你应该把所有你有其他特定重写规则后重写规则,否则所有的请求将被重定向到index.php?Page=...

+0

嘿谢谢 - 是的,我试过=我正在使用http://vanillaforums.org/addon/60/page-manager/50/50/ - 但它似乎当我这样做,我的任何样式加载? – Thomas 2010-01-18 05:12:04

+0

试试我的更新版本。尽管网址需要结尾。 – 2010-01-18 05:22:27

+0

嗯再次感谢,但现在,给我“找不到”,即/页/ [页名]或/ [页名]? “ – Thomas 2010-01-18 05:29:55

2

也许我不理解你,但似乎你需要这样的.htaccess文件来解决你的问题。

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    RewriteBase/

    # Ignore valid files 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d  

    RewriteRule ^(.*)$ index.php?Page=$1 [QSA,L] 
</IfModule> 
+0

嘿谢谢你的回应 - 它似乎当我添加这些没有我的样式加载? – Thomas 2010-01-18 05:06:48

+0

对不起,我的坏 - 看到更新的答案 – Darmen 2010-01-18 05:26:50

+0

嘿达伦 - 再次感谢。试过这个,但似乎没有工作?即只是重定向回index.php? – Thomas 2010-01-18 05:34:27