如何在htacess中隐藏/ public /目录

时间:2019-05-03 05:06:54

标签: .htaccess

我的网站是website.com/public/login.php。看起来有点难看。您如何重写htaccess来表示website.com/login.php?

我尝试过

RewriteEngine On
RewriteBase /public/

RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
RewriteRule ^ %1 [L,NE,R=302]

RewriteRule ^((?!public/).*)$ public/$1 [L,NC]

2 个答案:

答案 0 :(得分:1)

由于RewriteRule,剥离/public/路径的R=当前是外部重定向。由于您希望隐藏该规则的结果,因此它应该是一个内部重定向(也称为URL forwarding ),并且该书写的内容不带{{1} }选项。

使用这种方法时,您还可以从外部可见的URL中隐藏R=302,因为简单的.php/login干净得多。

答案 1 :(得分:0)

   Solved. It hides /public/ 
   website.com/login.php instead of 
   website.com/public/login.php

<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /

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