【发布时间】:2013-02-18 11:04:26
【问题描述】:
希望这是一个简单的。我有一个非常基本的.htaccess,它将对/admin(或/admin/etc)的任何请求重写为/_admin/index.php。到目前为止一切顺利:
#Options All -Indexes
RewriteEngine On
RewriteBase /admin
RewriteRule ^admin/$ /_admin/index.php [QSA]
RewriteRule ^admin$ /_admin/index.php [QSA]
RewriteRule ^admin/(.+)$ /_admin/index.php [QSA]
我还想要一个通用的“catch all else”规则,它将任何 other url(/users、/turnips/、/some/other/path 等等)重写回/index.php
我似乎无法让它工作 - 它的 server error 500 或 /admin 也会被重写到根页面。我确定我只需要对 RewriteCond 做点什么,但我想不通。
谢谢!
【问题讨论】:
-
尝试在每个重写规则之前添加这个:
RewriteCond %{REQUEST_URI} !index\.php [NC],以停止错误。 -
@faa 这似乎没有任何改变。只是为了澄清一下-我在那里列出的 .htaccess 文件确实可以正常工作。我只需要添加一个额外的规则,它将捕获不是
/admin的任何其他url:所以/users和其他任何东西都将重写为站点根目录中的/index.php(而/admin/仍然指向@987654337 @)
标签: apache .htaccess mod-rewrite