我想在子文件夹中使用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]
答案 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
开始)。