php - apache rewrite配置




如何通过.htaccess在URL中允许三个可选参数? (3)

我有http://example.com和PHP路由类,检查是否存在一些URL。
我想做一个新的路线,这是:

http://example.com/foo/bar/123

但是只要我打开它,Apache就会将我重定向到一个错误页面。 所以我使用.htaccess。 代码是:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)  /index.php [L]

它工作,只要我使用http://example.com/foo ,但一旦我添加一些其他参数,它重定向到一个错误。

我猜测重写代码是错误的。 这是错的吗?
如果是的话,你能建议我好吗?
如果不是,问题可能在哪里?


我想这可能有帮助。 “/index.php”将委托给错误的路径。

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]

RewriteRule ^(.*)$  /$1.php [L]

像这样尝试。 在你.htaccess每个请求不是在磁盘上的文件被重定向到index.php,我猜index.php进一步重定向。 我不认为你只用一行代码就可以得到这个路由/ foo / bar / 123或/ foo / bar。 每个页面都需要自己的重写规则。 你可以再详细一点吗?


从Apache 2.2.16开始:

FallbackResource /index.php