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

Sou*_*rma 6 php apache .htaccess

我试图在php .htaccess文件中的ErrorDocument中制作404,500个页面,如果给出它可以正常工作

ErrorDocument 404 http://localhost/project/errordocs/404.html
Run Code Online (Sandbox Code Playgroud)

但我不想在这里硬编码网址,而是我想动态获取根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
Run Code Online (Sandbox Code Playgroud)

有什么帮助吗?

spl*_*h58 4

提问者问得不对。他所写的一切

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
Run Code Online (Sandbox Code Playgroud)

可以由以下人员完成

ErrorDocument 404 /project/errordocs/404.html
Run Code Online (Sandbox Code Playgroud)

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

我认为这可能是通过将 htacces 放置在 /project 中并使用代码来完成的

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule ^  errordocs/404.html [L]
Run Code Online (Sandbox Code Playgroud)

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

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