我有两页处理参数并显示相关页面,首先是认证路由和默认路由。
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'
答案 0 :(得分:1)
你必须排除你正在重写的目的地,否则你会得到一个重写循环错误,因为模式([^ /] +)也匹配 /index.php 。所以将你的第一条规则改为:
RewriteRule ^((?!index.php).+)$ /index.php?page=$1 [L]