php - 在 .htaccess 中动态获取站点根主机名

标签 php apache .htaccess

我正在尝试在 php.htaccess 文件中的 ErrorDocument 中制作 404、500 等页面,如果给它就可以正常工作

ErrorDocument 404 http://localhost/project/errordocs/404.html

但我不想在这里对 url 进行硬编码,而是想动态获取根 url 站点名称,这样我就不必在主机名更改时一次又一次地更改它。

基本上我想得到这样的根 url:http://localhost/project 可以更改为 http://www.example1.com/projecthttp://www.example2.com/project 等。此 url 必须来自项目根文件夹。

所以这将动态地变成:

ErrorDocument 404 http://localhost/project/errordocs/404.html
ErrorDocument 404 http://www.example1.com/project/errordocs/404.html
ErrorDocument 404 http://www.example2.com/project/errordocs/404.html

有什么帮助吗?

最佳答案

提问者问错了。都是他写的

ErrorDocument 404 http://localhost/project/errordocs/404.html
ErrorDocument 404 http://www.example1.com/project/errordocs/404.html
ErrorDocument 404 http://www.example2.com/project/errordocs/404.html

可以由

完成
ErrorDocument 404 /project/errordocs/404.html

但他真的想要:在将站点从项目文件夹移动到 project1 时,他不应该更改规则

我想这可能是通过放在/project 中的 htacces 代码完成的

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule ^  errordocs/404.html [L]

如果 AllowOverride 设置为 All(默认设置),它将起作用。

问题只是在这种情况下响应是 200 而不是 404

关于php - 在 .htaccess 中动态获取站点根主机名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30693367/

相关文章:

PHP 函数 mb_detect_encoding 严格模式

javascript - 如何在使用 PHP 单击提交按钮后删除文件之前显示警告消息

php - UTF-8贯穿始终

linux - 如何通过 svn post-commit hook 运行 svn update

regex - htaccess 不存在的子域到主域重定向

PHP 认为我的非空 DSN == null

Apache:将 WWW 重定向到裸域

apache - 利用浏览器缓存

.htaccess - htaccess缓存不起作用

php - 由 Codeigniter 支持的 jQuery DataTables