.htaccess忽略目录但包含具有相同名称的子目录

时间:2016-12-01 18:08:36

标签: regex apache .htaccess mod-rewrite

我有一个名为' success-centers'的目录。 (我不想去这里)
我有一个名为' portal-pages / success-centers'

的子目录

如何忽略第一个但我的网址为:
local.com/success-centers/或local.com/success-centers/index.html到.htaccess?

这是我当前在ROOT中的htaccess文件。它工作正常,但当我去local.com/success-centers/时,它会转到我不想去的目录。

任何帮助都会很棒。感谢。

RewriteEngine On

# add a trailing slash if portal-pages/$1 is a directory
RewriteCond %{DOCUMENT_ROOT}/portal-pages/$1 -d
RewriteRule ^(.*[^/])$ %{REQUEST_URI}/ [L,R=301,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(?!portal-pages/)(.*)$ portal-pages/$1 [L,NC]

2 个答案:

答案 0 :(得分:1)

有这样的话:

RewriteEngine On

# add a trailing slash if portal-pages/$1 is a directory
RewriteCond %{DOCUMENT_ROOT}/portal-pages/$1 -d
RewriteRule ^(.*[^/])$ %{REQUEST_URI}/ [L,R=301,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(?!portal-pages/)(.*)$ portal-pages/$1 [L,NC]

当浏览器中的URI为-f时,您无需{i} -d portal-pages/success-centers/

答案 1 :(得分:0)

如果我已正确理解您的问题,并且您希望浏览器指向其他页面,但您希望该网页栏中显示该不同页面的网址,你需要的东西是:

RewriteEngine On

RewriteRule ^success-centers(.*) /portal-pages/success-centers$1 [L]