如何屏蔽“获取”URL并使其看起来像文件?

时间:2015-02-05 22:35:27

标签: php apache .htaccess

我想首先为我的选择道歉。我没有在网络开发业务中正确地说出标题,所以就是这样。

我正在使用Apache Server,并且在项目的根文件夹中有一个.htaccess文件。它指定了404页面以及用于从URL中删除文件的.php的重写条件:

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteCond %{REQUEST_URI} !/$
    RewriteRule ^(.*)$ $1\.php
</IfModule>

我的网页“social.php”上有一个用户部分,并在我的代码中使用GET变量检索它们。

示例网址:

 www.mysite.com/users/social.php?username=someuser

但是,我想知道如何让它看起来像:

 www.mysite.com/users/someuser

提前致谢!

2 个答案:

答案 0 :(得分:1)

将你的root .htaccess作为:

<IfModule mod_rewrite.c>
    Options -MultiViews
    RewriteEngine On

    RewriteRule ^users/(\w+)/?$ /users/social.php?username=$1 [L,QSA,NC]

    RewriteCond %{REQUEST_FILENAME}\.php -f
    RewriteCond %{REQUEST_URI} !/$
    RewriteRule ^(.*)$ $1.php [L]
</IfModule>

答案 1 :(得分:0)

此时仅部分是mod_rewrite问题。

第一部分是将/users/[a-z]+之类的网址路由到某个脚本/social.php RewriteRule ^/users/(.*)$ social.php?username=$1

第二部分是在social.php中你需要获取用户名&#34; someuser&#34;在$_GET['username']