我正面临一个(可能)非常简单的问题,我的普通旧的PHP应用程序。我的网站有一个简单的目录结构:
www.domain.com
/blog
/some_subdirectory
/some_other_subdirectory
我想在每次访问我的应用程序中的任何文件夹/任何文件时将用户重定向到/ blog目录,除非他已经在该/ blog目录中。
我在.htaccess文件中提出了以下代码段:
Redirect 302 / http://www.domain.com/blog
但当然如果在/ blog目录中也会重定向,导致无限循环重定向到不存在的更深层/博客目录。
如何从该重定向语句中排除/ blog目录?
答案 0 :(得分:2)
要排除文件夹,您应该使用mod_rewrite。您可以尝试这样做:
Options +FollowSymlinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI} !/blog [NC]
RewriteRule ^(.*) /blog/$ [L,NC]
答案 1 :(得分:1)
请改用mod_rewrite,因为您可以创建一个否定条件:
RewriteEngine On
RewriteCond %{REQUEST_URI} !^/blog
RewriteRule ^(.*)$ /blog/$1 [L,R]
这当然会改变浏览器的URL地址栏中的内容。如果您不想更改该栏,则只需从方括号中删除,R
标志。