簡體   English   中英

將文件夾中的所有文件重寫到另一個文件夾

[英]Rewrite all files from folder to another folder

我想將所有請求的文件從文件夾 a 重定向到文件夾 b。 例如http://www.yoursite.com/folder-a/index.phphttp://www.yoursite.com/folder-b/index.php

我怎樣才能做到這一點? 我已經驗證了 mod_rewrite 是否適用於此代碼:

RewriteEngine On
RewriteRule ^google.html$ http://www.google.com/ [R=301]

網站空間的結構如下:

.htaccess
|-文件夾-a
|-文件夾-b

但是如果我想要我的文件夾重定向

RewriteEngine On
RewriteRule ^/folder-a/(.*)$ http://www.yoursite.com/folder-b/$1 [L,R=301]

如果我輸入以下 URL,重定向將不起作用:

http://www.yoursite.com/folder-a/
http://www.yoursite.com/folder-a/index.php

重定向不會發生。 我停留在同一頁面上......我做錯了什么? 我也用這個 htaccess 嘗試過:

Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^folder-a(.*)$ http://www.yoursite.com/folder-b$1 [L,R=301]

</IfModule>

如果所有這些都有效,我想排除一些文件。 例如。 使用此 htaccess:

RedirectPermanent /folder-a/info.php /folder-b/new-info.php

編輯

現在我嘗試了這個 htaccess

redirectMatch 301 ^/folder-a/ http://www.yoursite.com/folder-b

這有效,但我需要一些可以獲取整個路徑並將其重寫到新文件夾的東西。

例如,這不起作用:

RewriteRule ^folder-a/(.*)$ folder-b/$1

解決方案

我的文件folder-a -a 中有一個舊的 htacess 文件,因此重定向不起作用。 這是我最后的 htaccess:

Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^folder-a/excludefile1.php http://www.yoursite.com/folder-b/newnameforfile1.php [L,R=301]
RewriteRule ^folder-a/excludefile2.php http://www.yoursite.com/folder-b/newnameforfile2.php [L,R=301]
RewriteRule ^folder-a/(.*)$ http://www.yoursite.com/folder-b/$1 [L,R=301]

</IfModule>

您可能需要將兩個規則都設置到位:一個用於空文件夾,一個用於其他文件,然后是底部的全部規則。 這沒有經過測試:

RewriteEngine On

RewriteRule ^folder-a/info.php http://www.yoursite.com/folder-b/new-info.php [L,R=301]
RewriteRule ^folder-a/ http://www.yoursite.com/folder-b/ [L,R=301]
RewriteRule ^folder-a/(.*)$ http://www.yoursite.com/folder-b/$1 [L,R=301]

暫無
暫無

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

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