使用请求将所有请求重新路由到index.php作为查询字符串(.htaccess)

时间:2013-04-03 09:30:27

标签: .htaccess rewrite query-string

我正在编写我的第一个.htaccess文件,虽然我已经学到了很多东西,但我有一件事我正在努力。

我有一个CMS,它根据一个名为“filename”的变量生成页面,该变量通过我的URL传递,例如... index.php?filename = about.htm

所以我只有一个真正的文件... index.php

我希望“index.php?filename”不会出现,所以所有网址看起来都像www.example.com/about.htm一样正常,即使“文件名”查询字符串仍在传递中。

我希望我有道理,这是可能的......谢谢你们!

2 个答案:

答案 0 :(得分:1)

想要将/$var重写为/index.php?filename=$var吗?尝试将其粘贴到.htaccess文件中:

Options +FollowSymlinks
RewriteEngine on

RewriteCond %{REQUEST_URI} ^/index\.php$
RewriteCond %{QUERY_STRING} filename=([a-z0-9-_])
RewriteRule ^(.*) /index.php?filename=%1

答案 1 :(得分:0)

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?filename=$1 [L,QSA]