我使用mod_rewrite有子文件夹的问题

时间:2014-02-01 17:15:25

标签: php .htaccess mod-rewrite

我想在子文件夹中使用mod_rewrite,但是我尝试过什么时候找不到404

www.mydomain.com/的 GAST

我现在在 gast 文件夹中有我的.htaccess。我做错了什么?如果我在root中使用相同的代码(在最后一行没有 gast )它适用于root

RewriteEngine On    
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule ^gast/?([a-zA-Z0-9_-]+) /index.php?a=$1 [L]

1 个答案:

答案 0 :(得分:0)

如果你在子文件夹中有.htaccess,那么你就不会开始与子文件夹匹配,而是使用RewriteBase中的子文件夹。

您可以使用:

RewriteEngine On
RewriteBase /gast/

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^([\w-]+)/?$ index.php?a=$1 [L]
  • .htaccess是每个目录指令,Apache从DocumentRoot URI模式中删除当前目录路径(因此当前目录从RewriteRule开始)。