繁体   English   中英

重写代码在HTACCESS文件中不起作用;

[英]Re-write codes not working in HTACCESS file;

在此线程被标记为“ 重复 ”之前,或被渴望的人否决.......请允许我先解决我的问题:)

尽管针对该问题有数十种在线解决方案,但似乎没有一个对我有用。

我试图隐藏一个文件夹,所以它不会显示在我的URL中。

我的域名是: www.example.com

我的登录文件位于“ PHP ”文件夹中。

因此,登录URL为: www.example.com/PHP/login.php

我正在尝试隐藏“ PHP ”,因此URL显示为:

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]

(请注意已注释掉的两行。)

试试看,看看是否适合您。

  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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM