相关疑难解决方法(0)

使用PHP"注意:未定义的变量","注意:未定义的索引"和"通知:未定义的偏移量"

我正在运行PHP脚本,并继续收到如下错误:

注意:未定义的变量:第10行的C:\ wamp\www\mypath\index.php中的my_variable_name

注意:第11行的未定义索引:my_index C:\ wamp\www\mypath\index.php

第10行和第11行看起来像这样:

echo "My variable value is: " . $my_variable_name;
echo "My index value is: " . $my_array["my_index"];
Run Code Online (Sandbox Code Playgroud)

这些错误消息的含义是什么?

他们为什么突然出现?我曾经使用这个脚本多年,我从来没有遇到任何问题.

我该如何解决?

这是一个一般参考问题,供人们链接到重复,而不是一遍又一遍地解释这个问题.我觉得这是必要的,因为关于这个问题的大多数现实世界的答案都非常具体.

相关元讨论:

php arrays variables warnings undefined-index

1119
推荐指数
20
解决办法
163万
查看次数

调试.htaccess重写规则的提示

许多海报在调试文件中的RewriteRule和RewriteCond语句时遇到问题.htaccess.其中大多数使用共享托管服务,因此无权访问根服务器配置.他们无法避免使用.htaccess文件进行重写,并且无法像许多受访者所建议的那样启用RewriteLogLevel.还有许多.htaccess特定的陷阱和约束都没有得到很好的解决.设置本地测试LAMP堆栈对于大多数人来说需要太多的学习曲线.

所以在这里我的Q是我们怎么会建议他们调试他们的规则本身.我在下面提供一些建议.其他建议将不胜感激.

  1. 了解mod_rewrite引擎循环遍历.htaccess文件.引擎运行此循环:

    do
      execute server and vhost rewrites (in the Apache Virtual Host Config)
      find the lowest "Per Dir" .htaccess file on the file path with rewrites enabled
      if found(.htaccess)
         execute .htaccess rewrites (in the user's directory)
    while rewrite occurred
    
    Run Code Online (Sandbox Code Playgroud)

    因此,您的规则将重复执行,如果您更改URI路径,那么它可能最终会执行其他.htaccess文件(如果存在).因此,请确保终止此循环,必要时添加额外的内容RewriteCond以停止规则触发..htaccess除非明确意图使用多级规则集,否则还要删除任何较低级别的重写规则集.

  2. 通过针对一组测试模式进行测试,确保每个Regexp的语法都是正确的,以确保它是一个有效的语法,并完成您对各种测试URI的意图.请参阅下面答案了解更多详情

  3. 在测试目录中逐步构建规则. 您可以使用" .htaccess在路径功能上执行最深的文件"来设置单独的测试目录(树)和调试规则集,而无需搞砸主要规则并停止站点工作.您必须一次添加一个,因为这是将故障本地化为单个规则的唯一方法.

  4. 使用虚拟脚本存根转储服务器和环境变量.(参见清单2)如果您的应用程序使用了,blog/index.php那么您可以将其复制 …

apache .htaccess mod-rewrite

264
推荐指数
9
解决办法
11万
查看次数

如何调试htaccess重写脚本

我想知道如何创建和调试这种脚本,如果你不习惯写它们(比如我),它会变得有点头疼.

你用工具来创造它们吗?

调试正在进行的任何提示,而不仅仅是创建一个本地结构,看看浏览器中发生了什么?

debugging .htaccess mod-rewrite

19
推荐指数
3
解决办法
3万
查看次数

是否可以使用.htaccess更改子域的目录?

我有一个图像共享网站,我曾经有一个图像的子域,但我不得不删除它,所以现在我使用图像的真实路径:

旧网址:

http://img.site.com/images/2013/03/abc.jpg
Run Code Online (Sandbox Code Playgroud)

新网址:

http://site.com/files/images/2013/03/abc.jpg
Run Code Online (Sandbox Code Playgroud)

这个问题是我有很多图像链接来自其他网站和仍在使用旧网址的搜索引擎.

旧子域的问题是它的directory(public_html/files)和它的名称(img.)是不同的,因此需要特殊的配置来处理它,我厌倦了它导致的所有问题.

现在我已经创建了一个img.指向public_html/img目录的普通子域,因此不需要额外的配置,但是我的图像仍然在 public_html/files目录中.

我想我现在要做的就是以某种方式使用.htacess替换旧目录.我不知道这是否可行.

.htaccess目前是:

<IfModule mod_rewrite.c>

    RewriteEngine On

    RewriteBase /
    RewriteCond %{HTTP_HOST} ^img\.site\.com$ [NC]
    RewriteRule ^(images/.*)$ http://site.com/files/images/$1[R=301,NC,L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{ENV:REDIRECT_STATUS} ^$

    RewriteRule ^(.*)$ index.php/$1 [L,QSA] 
</IfModule>
Run Code Online (Sandbox Code Playgroud)

当我尝试从子域调用图像时,我得到:

Not Found

The requested URL /files/images/2013/10/15c100d1da3216850d6cceb4ce57eaab6d26fc92.jpg was not found on this server.
img.site.com
Run Code Online (Sandbox Code Playgroud)

我的错误日志报告:

[Mon Oct 21 02:58:46 2013] [error] [client 85.185.229.221] script '/home/site/domains/site.com/public_html/img/index.php' not found or unable to stat
Run Code Online (Sandbox Code Playgroud)

php apache .htaccess mod-rewrite

5
推荐指数
1
解决办法
1054
查看次数

如果主机名不是 htaccess 重定向

我正在运行一个带有多个虚拟主机的服务器,phpMyadmin 被设置为一个别名,可以通过 anydomain.com/phpmyadmin 访问。我想使用 .htaccess 重定向规则,以便如果没有在server-admin-url上访问 phpmyadmin ,则访问者将被重定向到 Google。

正确的网址是: https://server.domain.com:9090/phpmyadmin

请问有人可以帮我吗?

谢谢!

apache .htaccess redirect phpmyadmin

1
推荐指数
1
解决办法
5374
查看次数

目录中的友好URL

我在域和目录中安装了Wordpress,我有一个用PHP + MySQL开发的站点完全独立于wordpress.它独自工作.这个站点是一个后台,所以它安装在/ backoffice /目录下.

后台的目录之一我有另一个目录,我希望它与友好的URL一起使用.

在我的.htaccess中,我有以下规则:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

RewriteRule ^backoffice/edit_user/([^/\.]+)/?$ /backoffice/edit_user/index.php?o=$1 [L,NC,QSA]


RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI} !=/server-status
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteRule ^login/?$ wp-login.php [QSA,L]
RewriteRule ^postpass/?$ wp-login.php?action=postpass [QSA,L]
RewriteRule ^logout/?$ wp-login.php?action=logout [QSA,L]
RewriteRule ^lostpassword/?$ wp-login.php?action=lostpassword [QSA,L]
RewriteRule ^retrievepassword/?$ wp-login.php?action=retrievepassword [QSA,L]
RewriteRule ^resetpass/?$ wp-login.php?action=resetpass [QSA,L]
RewriteRule ^rp/?$ wp-login.php?action=rp [QSA,L]
RewriteRule ^register/?$ wp-login.php?action=register [QSA,L]
Run Code Online (Sandbox Code Playgroud)

当调用这样的URL:mydomain.com/backoffice/edit_user/joseantonio时会出现404页面.

怎么了?

提前致谢.

php wordpress .htaccess friendly-url

-2
推荐指数
1
解决办法
432
查看次数