【问题标题】:How can I hide folder name from URL using .htaccess如何使用 .htaccess 从 URL 中隐藏文件夹名称
【发布时间】:2015-07-23 12:33:38
【问题描述】:

我有一个根文件夹为“www”的网站,但我将包括 index.php 在内的所有 php 文件放在根目录的子文件夹中。 我给自己写了一个.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

现在,我想更改 .htaccess 文件以实现这些目标:

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

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

我搜索了一些脚本,但没有一个有效。

【问题讨论】:

标签: .htaccess url-rewriting url-redirection


【解决方案1】:

我发现这个相关的问题可以回答您的问题。答案中的 sn-p 是(注意:它已根据您的需要进行调整):

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]

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

【讨论】:

  • 我应该用根目录中的 .htaccess 替换这个文件,对吗?站点只跳转到文件夹,但 url 仍然是 'www.test.com/folder'。
  • 请注意,我刚刚使用@NinjaCat 建议的答案更新了代码,再次适应了您的需求。检查它并告诉我它现在是否正常工作。我在这里做了一个简单的本地测试,它奏效了。请注意,您需要将看到 folder 的位置更改为您要为该文件夹指定的实际名称。
【解决方案2】:

您可以使用以下代码。

RewriteEngine On
RewriteBase /
RewriteRule ^/?$ /folder/ [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /folder/$1 [L]

【讨论】:

    【解决方案3】:

    根据您当前的规则。您只需稍作调整即可。

     RewriteEngine On
     RewriteBase /
     #ignore folder2 in which I put important files, but no works for the website
     RewriteRule ^folder2/? - [L] 
    
     RewriteRule ^/?$ /folder/ [L]
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule ^(.*)$ /folder/$1 [L]
    

    【讨论】:

    • 它不工作。该网站甚至不再显示 index.php 页面。
    • 还是没有跳。我应该将此文件放在文件夹中还是仅将其保留在根目录中?
    • 你是什么意思不跳?我不明白你的意思。你在浏览器中输入了什么,你期望发生什么?从那里开始。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-06
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    相关资源
    最近更新 更多