没有重写特定文件夹 - htaccess

时间:2015-09-29 14:17:47

标签: php regex apache .htaccess mod-rewrite

我当前的.htaccess - 文件如下所示:

RewriteEngine On
RewriteBase /folder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^/]+)/?$ index.php?g=$1 [L,QSA]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?g=$1&pt=$2 [L,QSA]

有物理文件夹安装。

如果我尝试打开http://example.com/install而不是打开install/index.php,则会尝试打开index.php?g=install。 难怪这里,因为,这就是我想要的。 但是我怎样才能打开install - 文件夹。 一切都去索引,但安装去安装......

我试过这样的事情: RewriteRule ^install/index\.php$ /install/index.php [R=301,L,NC]

仍然无法正常工作。

任何想法?

1 个答案:

答案 0 :(得分:1)

/install/ URI创建绕过规则:

RewriteEngine On
RewriteBase /folder/

# skip /install/ from rules below
RewriteRule ^install/?$ - [L,NC]

# skip all directories and files from rewrites
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]

# handle single level virtual folder 
RewriteRule ^([^/]+)/?$ index.php?g=$1 [L,QSA]

# handle 2 level virtual folders 
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?g=$1&pt=$2 [L,QSA]