2016-09-23 34 views
0

該網站的結構是下一個:.htaccess在子文件夾中的部分工作

www.mydomain.com - >這裏是安裝wordpress。
www.mydomain.com/subfolder1 - >這裏安裝了一個自定義的php應用程序。 www.mydomain.com/subfolder1/subfolder2 - >這裏安裝了php應用程序的控制面板。

我在子文件夾1中有一個.htaccess文件,在子文件夾2中有另一個,子文件夾1中的導航很棒,但是子文件夾2中的導航是錯誤的;

我可以看到www.mydomain.com/subfolder1/subfolder2/index.php,但如果我想瀏覽菜單,即www.mydomain.com/subfolder1/subfolder2/test url更改,但我總是看到索引。 php

任何建議?

在subfolder1的.htaccess

Option -Indexes 
ErroDocument 404/404.php 
RewriteEngine On 
RewriteBase /subfolder1/ 

#Remove extra trailing slashes 
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$ 
RewriteRule . %1/%2 [R=301,L] 

#Add missing trailing slash 
RewriteCond %{REQUEST_URI} /+[^\.]+$ 
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] 

RewriteRule /(uploads/.*) $1 [R=301,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?$1 [L,QSA] 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC] 
RewriteRule^%1 [R=301,L] 

<ifModule mod_deflate.c> 
<filesmatch "\.(js|css|html|jpg|png|gif|eot|woff|ttf|svg)$"> 
    SetOutputFilter DEFLATE 
</filesmatch> 
</ifModule> 

<FilesMatch "\.(htaccess|htpasswd|ini|log|sh|inc|bak|cache|tpl)$"> 
    Order Allow,Deny 
    Deny from all 
</FilesMatch> 

的.htaccess中subfolder2類似subfolder1但我已經改變你已經改變了RewriteBase的RewriteBase

Option -Indexes 
ErroDocument 404/404.php 
RewriteEngine On 
RewriteBase /subfolder1/subfolder2/ 

#Remove extra trailing slashes 
RewriteCond %{REQUEST_URI} ^(.*)/{2,}(.*)$ 
RewriteRule . %1/%2 [R=301,L] 

#Add missing trailing slash 
RewriteCond %{REQUEST_URI} /+[^\.]+$ 
RewriteRule ^(.+[^/])$ %{REQUEST_URI}/ [R=301,L] 

RewriteRule /(uploads/.*) $1 [R=301,L] 

RewriteCond %{REQUEST_URI} ^/subfolder2(.+)$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 

RewriteRule ^(.+)$ subfolder2/index.php?url=$1 [QSA,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-l 
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php?$1 [L,QSA] 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC] 
RewriteRule^%1 [R=301,L] 

<ifModule mod_deflate.c> 
<filesmatch "\.(js|css|html|jpg|png|gif|eot|woff|ttf|svg)$"> 
    SetOutputFilter DEFLATE 
</filesmatch> 
</ifModule> 

<FilesMatch "\.(htaccess|htpasswd|ini|log|sh|inc|bak|cache|tpl)$"> 
    Order Allow,Deny 
    Deny from all 
</FilesMatch> 

回答

0

,所以你不需要把「子文件夾2「在RewriteCondition和RewriteRule中。

或保持該狀態,並將RewriteBase更改爲第一個.htaccess