2012-03-09 107 views
0

我有以下的htaccess:htaccess的URL重写规则与文件夹名称

Options +FollowSymlinks 
RewriteEngine on 

RewriteRule ^models$ index.php [L] 
RewriteRule ^post$ index.php?action=post [L] 

和一个名为models文件夹。

问题是:Apache将我发送到文件夹中。由于没有名为post的文件夹,因此使用“发布”重定向规则起作用。

编辑:
我忘了告诉大家,有htaccess的在模型文件夹也有:

Deny from all 
+0

因此,您希望'http://example.com/models'将其重写为'index.php',而不是'http:// example.com/models /'? – 2012-03-09 18:56:18

+0

是的,我试过RewriteCond%{REQUEST_FILENAME} -d RewriteRule(。*)index.php [L] – pinkvoid 2012-03-09 19:05:00

+0

如果您不使用它们,请关闭Multiviews和DirectoryIndex。 – TerryE 2012-03-10 06:11:13

回答

1

如果你能接受的模型后尾随斜线,我认为这是可行的。

RewriteEngine On 

RewriteRule ^models/?$ index.php [L] 
RewriteRule ^post$ index.php?action=post& [L] 
+0

也无法工作 – pinkvoid 2012-03-09 20:05:16

+0

奇怪。我在我的服务器上测试了它,并且它与我的环境(有一个模型文件夹)一起工作,你能告诉我们你正在运行哪些测试来验证你的配置吗? – 2012-03-09 20:16:56

+0

我忘了告诉模型文件夹中有htaccess,全部拒绝 – pinkvoid 2012-03-09 20:36:33

0

在您的apache配置文件中禁用MultiViews。 将“Options -MultiViews”添加到.htaccess中也可能会有效。