【发布时间】:2019-05-17 04:41:11
【问题描述】:
我有一个名为 otp.php 的 PHP 文件。
当 URL 栏中的 URL 为
http://localhost/college/otp/MTA=/teacher
应该被视为
http://localhost/college/otp.php?user=MTA=&role=teacher
为此,我在http://localhost/college/中创建了.htaccess文件:
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^otp/?$ otp.php [NC,L]
RewriteRule ^otp/[A-Za-z-]+/([A-Za-z0-9-]+)/?$ otp.php?user=$1&role=$2 [NC,L]
但是,otp.php 文件说:
注意:未定义索引:角色在 C:\wamp\www\college\otp.php 上线 11
注意:未定义索引:用户在 C:\wamp\www\college\otp.php 上线 11
更新
当网址栏中的网址为
http://localhost/college/otp/MTA/teacher
应该被视为
http://localhost/college/otp.php?user=MTA&role=teacher
我该如何解决这个问题?
【问题讨论】:
-
我认为以下问题应该对您有所帮助。 stackoverflow.com/questions/7876868/php-get-and-undefined-index
-
您链接的问题与我无关,因为我在代码中使用
isset,主要问题在.htaccess文件中。 @Abhineet -
[A-Za-z-]+与您在示例中显示的=不匹配不。因此该规则不会被应用。 -
那怎么用呢?
-
对您问题的最后一次更新 表明,即使您直接请求
http://localhost/college/otp.php?user=MTA&role=teacher,您仍然会从PHP 获得这些“未定义索引”通知?你能证实这一点吗? (因为这会完全改变你问题的重点。)
标签: regex apache .htaccess mod-rewrite url-rewriting