[英]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 文件以實現以下目標:
www.test.com
,像往常一樣跳轉到www.test.com/folder
,但顯示的 url 沒有folder 。文件夾中的所有頁面將顯示沒有文件夾名稱的 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]
您可以使用以下代碼。
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.