如何使用.htaccess从URL隐藏文件夹名称

use*_*516 2 .htaccess url-rewriting url-redirection

我有一个根文件夹'www'的网站,但我把所有的php文件包括index.php放在root的子文件夹中.我给自己写了一个.htaccess文件来重定向,所以如果我输入www.test.com,它会跳转www.test.com/folder并显示index.php.

下面是.htaccess我把它放在根目录中.

 RewriteEngine On
 RewriteBase /
 RewriteRule ^folder2 - [L] 
 #ignore folder2 in which I put important files, but no works for the website
 RewriteCond %{REQUEST_URI} !^/folder(.*)
 RewriteRule (.*) /folder/$1
Run Code Online (Sandbox Code Playgroud)

现在,我想更改.htaccess文件以达到以下目标:

  1. 当我输入时www.test.com,www.test.com/folder像往常一样跳转,但显示没有文件夹的URL .
  2. 文件夹中的所有页面都将显示没有文件夹名称的URL.如

    www.test.com/shop/page1 - > www.test.com/page1

我搜索了一些脚本,但没有一个可以工作.

Joã*_*ira 5

我发现这个相关的问题可以解答你的问题.答案的片段是(注意:它根据您的需要调整):

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+folder/([^\s]+) [NC]
RewriteRule ^ %1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (?!^folder/)^(.*)$ /folder/$1 [L,NC]
Run Code Online (Sandbox Code Playgroud)

参考:https://stackoverflow.com/a/18361995/3673491