帮助.htaccess RewriteRule。需要将用户从一个URL带到另一个URL

时间:2009-12-17 08:47:50

标签: .htaccess url-rewriting mod-rewrite

我想要输入

的用户
http://www.example.com/word-of-the-day

将被带到

http://www.example.com/index.php?page=word-of-the-day

但我想要

http://www.example.com/word-of-the-day

显示在用户的网址中。

我的.htaccess应该怎么办?我试过但是正则表达式 而RewriteRule的语法对我来说太复杂了 弄清楚该怎么做。

任何帮助将不胜感激。

修改

另外,我怎么能在htaccess中说这个 -

如果他们输入http://www.example.com/word-of-the-day,请将其转到http://www.example.com/index.php?page=word-of-the-day

或如果他们输入http://www.example.com/something-else,请将其转到http://www.example.com/index.php?page=something-else

或者,只需将它们带到他们输入的网址即可。

2 个答案:

答案 0 :(得分:1)

以下条件检查未请求index.php。如果不适用该规则。这适用于您在上面列出的任何场景。

RewriteCond %{QUERY_STRING}  ^!.*[index\.php].*$ [NC]    
RewriteRule ^(.*)$ index.php?page=$1 [L]

在回复您的评论时,只想对几个特定页面执行此操作,它看起来像这样(作为Nils编辑的替代方案):

RewriteCond %{QUERY_STRING}  ^!.*[index\.php].*$ [NC]
RewriteCond %{REQUEST_URI}   ^word-of-the-day$ [OR]  
RewriteCond %{REQUEST_URI}   ^something-else$ [OR]
RewriteCond %{REQUEST_URI}   ^even-something-else$
RewriteRule ^(.*)$ index.php?page=$1 [L]

答案 1 :(得分:0)

试试这个

RewriteEngine on 
RewriteRule ^word-of-the-day$ index.php?page=word-of-the-day

或更灵活

RewriteEngine on 
RewriteRule ^(.*)$ index.php?page=$1

未经测试,但它可以工作。

要编辑:

只需手动定义这些特定网址:

RewriteEngine on 
RewriteRule ^word-of-the-day$ index.php?page=word-of-the-day
RewriteRule ^word-some-example$ index.php?page=some-example
RewriteRule ^some-other$ index.php?page=some-other