Apache ReWrite规则与目录


Apache ReWrite rules with directories

我有一个.htaccess文件,它使用以下重写规则。

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

此规则有效并重写http://url.com/doSomething到http://url.com/index.php?action=doSomething

在同一个文件中,我重写了子目录的规则,例如:

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

在我的本地Xampp安装上,当我转到http://url.com/news/(这是一个子目录(它加载子目录中的index.php文件。当我将其上传到托管的web服务器时,原始重写规则优先,不会传递到子目录。

我是否缺少一个选项来允许规则的原始设计方式?

如果上面有什么不合理的地方,请告诉我!

只使用一个规则创建.htaccess,并将其放置在/以及要重写的子目录中。

.htaccess

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

所以,

.htaccess置于/.htaccess

.htaccess置于/news/.htaccess