此线程被标记为" 重复"或被某人急切下来投票.......请允许我先解决我的问题: )
尽管在网上有这几个问题的解决方案,但似乎没有一个对我有用。
我试图隐藏文件夹,因此它不会显示在我的网址中。
我的域名是: www.example.com
我的登录文件位于" PHP "文件夹中。
因此,登录网址为: www.example.com/PHP/login.php
我正在尝试隐藏" PHP ",因此网址显示为:
www.example.com/login.php
我已经从这个论坛中复制了几个例子,但似乎没有任何效果。
我试过这个:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/PHP/
RewriteRule ^(.*)$ /PHP/$1
或者这.........
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/PHP
RewriteRule ^(.*)$ PHP/ $1
(即我删除了斜杠)
没有任何作用。 URL继续正常加载。
我收到错误的唯一一次是当我加入" [L] "在代码的最后:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/PHP/
RewriteRule ^(.*)$ /PHP/ $1 [L]
然后,我得到一个" 403 "错误..........这是有道理的,看作" [L]"防止执行任何进一步的重写命令。我的HTACCESS文件中有一些。
这是我完整的HTACCESS文件:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^/PHP/(.*)$ http://www.example.com/$1 [L,R=301]
#RewriteCond %{REQUEST_URI} !^PHP/
#RewriteRule ^(.*)$ PHP/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
(请注意两行已注释。)
答案 0 :(得分:1)
尝试一下,看看它是否适合你。
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} [A-Z]{3,}\ /PHP/([^&\ ]+)
RewriteRule ^ /%1? [R=301,L]
使用您当前的规则添加它。
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301]
RewriteCond %{THE_REQUEST} [A-Z]{3,}\ /PHP/([^&\ ]*)
RewriteRule ^ /%1? [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/PHP [NC]
RewriteRule ^(.+)$ /PHP/$1.php [L]
RewriteRule ^/?$ /PHP/$1 [L]