我有以下.htaccess配置:
RewriteEngine on
RewriteBase /
RewriteRule ^model/([^/\.]+)/?$ /model/index.php?u=$1 [L,NC,QSA]
RewriteRule ^collections/([^/\.]+)/?$ /collections/index.php?c=$1 [L,NC,QSA]
RewriteRule ^general/([^/\.]+)/?$ /general/index.php?p=$1 [L,NC,QSA]
RewriteRule ^blog/([^/\.]+)/?$ /blog/index.php?e=$1 [L,NC,QSA]
RewriteRule ^blog/archive/ /blog/archive/index.php [L,NC,QSA]
我需要的只是启用http://example.org/blog/archive/ url,现在在这样的目录中有一个index.php文件。
问题是上面的规则/博客/采取行动而不是最后一个。
我该怎么办?
答案 0 :(得分:0)
更改规则的顺序:
RewriteEngine on
RewriteBase /
RewriteRule ^model/([^/.]+)/?$ /model/index.php?u=$1 [L,NC,QSA]
RewriteRule ^collections/([^/.]+)/?$ /collections/index.php?c=$1 [L,NC,QSA]
RewriteRule ^general/([^/.]+)/?$ /general/index.php?p=$1 [L,NC,QSA]
RewriteRule ^blog/archive/ /blog/archive/index.php [L,NC,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^blog/([^/.]+)/?$ /blog/index.php?e=$1 [L,NC,QSA]
但是,如果/blog/archive/
是真实目录,那么如果您在.htaccess上添加此行,则甚至不需要任何重写规则:
DirectoryIndex index.php
默认情况下,这将为任何目录加载index.php
。