2016-09-23 35 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