从父级和子文件夹重定向htaccess

时间:2014-12-20 04:20:08

标签: .htaccess mod-rewrite

在搜索了所有其他解决方案之后,我还没有在stackoverflow上找到一个有效的例子。

我的主网站相应地重定向,但是当我想对子文件夹/管理文件夹执行相同的操作时,它会继承父搜索模式,并且不会使用admin文件夹中的登录页面。

Options -MultiViews
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(/$|\.) 
RewriteRule (.*) %{REQUEST_URI}/ [R=301,L] 
RewriteRule ^/?(.*)\ (.*)$ /$1-$2  [R=301,L]

要允许访问admin子文件夹,我有另一个htaccess文件:

RewriteEngine Off

为了澄清我确实试图打开这个文件夹htaccess,这样我可以重定向查询,只关闭它已成功访问admin子文件夹,但任何尾随查询都会回到主站点。

我在htaccess文件

上尝试了以下内容
RewriteRule ^admin/$ admin/index.php             [QSA,L]

将其关闭,然后在子目录htaccess中重新打开。

RewriteEngine Off
RewriteEngine On

请告知谢谢。

1 个答案:

答案 0 :(得分:1)

这样做:

<强> DocumentRoot/.htaccess

RewriteEngine On
RewriteBase /

# strip spaces
RewriteRule ^/?(.*)\ (.*)$ /$1-$2  [R=301,L]

## add a trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(/$|\.) 
RewriteRule (.*) %{REQUEST_URI}/ [R=301,NE,L]

<强> /admin/.htaccess

DirectoryIndex index.php
RewriteEngine On
RewriteBase /admin/

RewriteRule ^index\.php$ - [L,NC]

# forward everything to index.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule . index.php [L]