我有一个.htaccess文件,目前正在本地主机上工作。对于404页面错误,我在.htaccess文件中包含以下代码:ErrorDocument 404 /my_local_domain/404.php
但是,当我将此文件在线上传到我的网站时,该文件的功能中断了。它不再显示404.php页面。如果我将在线网站的.htaccess文件中的代码修改为以下代码,则该代码有效:ErrorDocument 404 /404.php
现在,通过对.htaccess文件所做的所有更改,我必须记住删除域名,然后再将其上传到网站,否则可能会破坏功能。因此,考虑到这一点,这是我的问题:
1.我如何进行更改并在线上传,而无需每次都编辑.htaccess文件(通过将其从my_local_domain中剥离)来解决上述问题?
2.如何为所有嵌套文件夹设置404页面重定向? (我不想为每个文件夹设置一个.htaccess文件。驻留在网站根文件夹中并控制所有子文件夹的所有重定向的单个.htaccess文件会很棒)
感谢所有帮助。
谢谢。
最佳答案
我相信您在这里有两个不同的问题。
首先,您在开发和现场站点中不需要走不同的道路。看来您已经将本地Apache配置为仅托管一个站点,并且每个实际站点都位于一个子目录中。这不是一个好主意:您很快将在所有开发站点之间混合cookie和会话。看一下name based virtual hosts功能:您可以根据需要配置任意数量的独立站点。您甚至不必购买真实域名,只需在hosts file中设置它们即可。
其次,在某些情况下,使用不同的Apache指令可能会很有用。我一直在使用以下技巧。
DEV_BOX
。 -D
参数将该关键字传递给Apache。如果将其作为服务运行,则可以运行regedit并找到HKLM\SYSTEM\CurrentControlSet\Services\Apache2.2\Parameters
密钥。将-D DEV_BOX
附加到ConfigArgs
值。重新启动Apache。 <IfDefine>
指令设置本地指令:--
#
# Common stuff
#
AddDefaultCharset UTF-8
#
# Local-only stuff
#
<IfDefine DEV_BOX>
Options +Indexes
</IfDefine>
#
# Live-only stuff
#
<IfDefine !DEV_BOX>
Options -Indexes
</IfDefine>
关于apache - PHP:如何对.htaccess进行编码,以使其在localhost和在线环境下均可运行而无需编辑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3329471/