.htaccess处理两个不同的页面

时间:2017-01-26 20:13:03

标签: .htaccess

我有两页处理参数并显示相关页面,首先是认证路由和默认路由。

http://example.com/auth/login
http://example.com/dashboard

首先由页面auth.php和param页面处理(EG:http://example.com/auth.php?page=login)。第二个是由index.php和param页面处理的(EG:http://example.com/index.php?page=dashboard)。

我使用在线生成器创建了.htaccess文件,它类似于:

RewriteEngine On
RewriteRule ^([^/]*)$ /index.php?page=$1 [L]
RewriteRule ^auth/([^/]*)$ /auth.php?page=$1 [L]

但这导致错误500,评论第二行我能够使用登录参数到达auth页面。

Apache2 error.log只写了这个,与服务器启动有关:

[Thu Jan 26 20:31:04.795013 2017] [mpm_prefork:notice] [pid 7163] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.20 configured -- resuming normal operations
[Thu Jan 26 20:31:04.795100 2017] [core:notice] [pid 7163] AH00094: Command line: 'apache2'

1 个答案:

答案 0 :(得分:1)

你必须排除你正在重写的目的地,否则你会得到一个重写循环错误,因为模式([^ /] +)也匹配 /index.php 。所以将你的第一条规则改为:

RewriteRule ^((?!index.php).+)$ /index.php?page=$1 [L]