.htaccess 重写规则以隐藏文件夹,不';没有尾随斜杠就不能正常工作
我有一个奇怪的apache mod_重写问题。我需要对用户隐藏一个子目录,但将每个请求重定向到该子目录。我在stackoverflow上发现了几个非常类似的问题,但没有什么真正合适的,所以我决定发布一个新问题 我的.htaccess如下所示: RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-l RewriteRule ^(.*)?$ foo/$1 [QSA,L] 重新启动发动机 重写基/ 重写cond%{REQUEST_FILENAME}-F 重写cond%{REQUEST_FILENAME}-D 重写cond%{REQUEST_FILENAME}-L 重写规则^(.*)?$foo/$1[QSA,L] 文档根目录仅包含以下文件夹/文件: /foo/bar/index.html /foo/bar/index.html 我现在希望example.com/bar和example.com/bar/只显示index.html的内容 相反,example.com/bar/按预期显示内容,但example.com/bar使用301将我重定向到example.com/bar/foo/an,然后显示内容。我真的不明白为什么在这种情况下会有301重定向 当我把东西放在这 RewriteCond %{REQUEST_URI} !^[^.]*/$ RewriteCond %{REQUEST_URI} !^[^.]*\.html$ RewriteCond %{REQUEST_URI} !^[^.]*\.php$ RewriteRule ^(.*)$ $1/ [QSA,L] 重写cond%{REQUEST_URI}^[^.]*/$ 重写cond%{REQUEST_URI}^[^.]*\.html$ 重写cond%{REQUEST_URI}^[^.]*\.php$ 重写规则^(.*)$$1/[QSA,L] 除此之外,这个规则似乎有效,但这需要我列出所有使用过的文件扩展名 是否有其他方法可以省略重定向,文件夹“bar”永远不会被外部用户看到.htaccess 重写规则以隐藏文件夹,不';没有尾随斜杠就不能正常工作,.htaccess,mod-rewrite,apache2,.htaccess,Mod Rewrite,Apache2,我有一个奇怪的apache mod_重写问题。我需要对用户隐藏一个子目录,但将每个请求重定向到该子目录。我在stackoverflow上发现了几个非常类似的问题,但没有什么真正合适的,所以我决定发布一个新问题 我的.htaccess如下所示: RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FIL
提前谢谢 第一条重写规则从/foo/(.)重定向到$1,第二条从(.)重定向到$1
只是想法,这还没有经过测试。迟做总比不做好 使用一个简单的重写规则,将/附加到每个不在上的url
# only directories
RewriteCond %{REQUEST_FILENAME} !-f
# exclude there directories
RewriteCond %{REQUEST_URI} !^/excluded-dirs
# exclude these extensions
RewriteCond %{REQUEST_URI} !\.excluded-extension$
# exclude request that already have a /
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /$1/ [R=301,L]
^(.*)/?$
将使尾部斜杠成为可选选项供参考