簡體   English   中英

如何使用 .htaccess 從 URL 中隱藏文件夾名稱

[英]How can I hide folder name from URL using .htaccess

我有一個根文件夾為“www”的網站,但我將包括 index.php 在內的所有 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

現在,我想更改 .htaccess 文件以實現以下目標:

  1. 當我輸入www.test.com ,像往常一樣跳轉到www.test.com/folder ,但顯示的 url 沒有folder
  2. 文件夾中的所有頁面將顯示沒有文件夾名稱的 url。

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

我搜索了一些腳本,但它們都不起作用。

我找到了這個相關問題,它可以解決您的問題。 答案的片段是(注意:它已根據您的需要進行調整):

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

您可以使用以下代碼。

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

根據您當前的規則。 您只需稍作調整即可。

 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]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM