我想要输入
的用户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
或者,只需将它们带到他们输入的网址即可。
答案 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