隐藏网址

时间:2017-05-31 10:34:54

标签: php apache .htaccess url directory

首先,我想告知这是我关于堆栈溢出的第一篇文章,所以如果我做错了,我也想让我知道。

我正在尝试构建包含控制器和模板等文件夹的PHP脚本。两者都是重定向和包含需要的PHP文件在其中的一个或另一个。一切都可以通过根域目录上的索引访问。所以我的问题是如何隐藏网址,domain.com/"controller"/activate.phpdomain.com/"templates"/login.php

我告诉你我在里面打电话给login.php"模板"文件夹中包含索引中的一些参数(if)。

我现在将发布我的.htaccess,以便您可以查看该过程,而我已经尝试隐藏"模板"过去的文件夹。但是,通过编码.htaccess,不再可以访问子目录了。这就是我必须删除代码的原因,因为这些代码不能解决我的问题。

<IfModule mod_rewrite.c>

    RewriteEngine on
    RewriteBase /

    ErrorDocument 404 /templates/404

    # To externally redirect /dir/abc.php to /dir/abc
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.+?)\.php[\s?] [NC]
    RewriteRule ^ /%1 [R=301,L,NE]

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME}.php -f
    RewriteRule ^(.+?)/?$ $1.php [QSA,NC,L]


</IfModule>

AddOutputFilterByType DEFLATE text / text text / html text / plain text / xml text / css application / x-javascript application / javascript  

到目前为止,我的.htaccess具有在url和cache-Gzip压缩方法上隐藏.php扩展名的参数。所有帮助都会欣赏它,错误和正确!

1 个答案:

答案 0 :(得分:0)

所以,如果我没有错,你会得到类似basepath / ControllerName / Method的东西,你想要隐藏ControllerName部分吗? 在我看来,使用MVC玩url / friendlyurl只是保持一个相对基本的htaccess像

single p = lookupFirst
  where
    lookupFirst []                  = False
    lookupFirst (x:xs)  | p x       = lookupSecond xs
                        | otherwise = lookupFirst xs
    lookupSecond []                 = True
    lookupSecond (x:xs) | p x       = False
                        | otherwise = lookupSecond xs

你可以通过一个简单的&#34;路由&#34;做你想做的事。配置:

例如:

获取网址和重定向的路由类

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /smw/


# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?$1 [QSA,L]
希望它有所帮助!告诉我你是否需要更多信息