![](/img/trans.png)
[英]Rewrite first level subdirectory to root directory passing folder name .htaccess
[英].htaccess rewrite in subdirectory not working under root directory with .htaccess
我的域指向根文件夾。 在此文件夾中,我需要具有.htaccess並將其重定向到子文件夾。
在根文件夾中,我有以下.htaccess文件:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/sub/folder/
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.
RewriteRule ^(.*) /sub/folder/$1 [L]
在sub / folder / .htaccess中,我有以下幾行:
RewriteEngine on
RewriteBase /
ErrorDocument 404 /index.php?action=404
RewriteCond %{REQUEST_URI} ^/image/([^/]+)/(\d+)x(\d+)/([^/]+).(jpg|png)$
RewriteRule (.*) file.php?action=%1&code=%4&w=%2&h=%3 [B,L,QSA]
RewriteCond %{REQUEST_URI} ^/cscard_valid$
RewriteRule (.*) index.php?action=cscardvalid&ajax=true [L,QSA]
..
我不知道為什么重定向不起作用。 你能幫我嗎? 謝謝
因為如果您的“ sub” htaccess位於Web uri /subfolder
,則不可能通過/image
或/cscard_valid
請求來觸發它。 這些是不同的目錄。 Apache僅掃描url列出的目錄中的htaccess文件,而不會進入“並行”或“鄰居”目錄。
例如,對於URL /foo/bar/baz
,Apache將檢查以下內容:
/foo/.htaccess
/foo/bar/.htaccess
/foo/bar/baz/.htaccess
如果/foo/himom
有一個.htaccess文件,則無關緊要。 它不在所請求文件的路徑中,因此永遠不會對其進行掃描。
刪除子文件夾中的.htaccess
,然后將規則添加到根目錄中,如下所示:
RewriteRule ^image/([^/]+)/(\d+)x(\d+)/([^/]+).(jpg|png)$ sub/folder/file.php?action=$1&code=$4&w=$2&h=$3 [B,L,QSA]
很可能您不需要/ sub / folder /中的.htaccess,只需要根目錄中的一個。 它的內容應類似於:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^/image/([^/]+)/(\d+)x(\d+)/([^/]+).(jpg|png)$
RewriteRule (.*) sub/folder/file.php?action=$1&code=$4&w=$2&h=$3 [B,L,QSA]
RewriteCond %{REQUEST_URI} ^/cscard_valid$
RewriteRule (.*) sub/folder/index.php?action=cscardvalid&ajax=true [L,QSA]
RewriteRule ^(.*) sub/folder/$1 [L]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.