Mod Rewrite隐藏扩展冲突

时间:2010-12-17 22:33:29

标签: apache mod-rewrite

我正在努力解决问题。

这是我用来隐藏userpage.php?user = moonwalker和show localhost / moonwalker的代码:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ userpage.php?user=$1 [NC,L]
RewriteRule ^([^/]+)/(images|videos|music)/?$ userpage.php?user=$1&page=$2 [NC,L]
</IfModule>

我还用它来加载一些页面,如音乐,视频或图像。现在问题是:我正在尝试隐藏服务器上的所有.php扩展名。例如: search.php将更改为localhost / search

但是我发布的脚本一直认为搜索是一个用户名,所以它一直向我显示userpage.php文件。

任何想法如何解决这个问题而不改变:localhost / username结构?

提前致谢。

编辑:

这是我用来隐藏扩展程序的第二个脚本:

<IfModule mod_rewrite.c>
   Options +FollowSymLinks
   Options +Indexes
   RewriteEngine On
   RewriteCond %{SCRIPT_FILENAME} !-d
   RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^select/([^/]*)$ /test/PDO/select2.php?lang=$1 [L]

</IfModule>

1 个答案:

答案 0 :(得分:0)

我发现这是不可能的。所以我改变了我的结构。我现在使用localhost / user / username。而不是localhost / username。

现在所有问题都解决了。