简而言之
工作正常: www.exampledomain.co.uk{/with-any-url} 给出
404 错误: exampledomain.co.uk{/with-any-url}
详细地
我在 linux/apache2 上运行的站点存在问题,其中“www.” 网址工作正常,但使用“www.” 删除每个 url 都会返回 404。该域在 dnsstuff.com 检查中未显示任何错误,其中 www 和常规域指向相同的 IP 地址。
当我使用 cmd ping 域和 www 时。域,都解析到相同的 IP 并响应。
我在 Web 根目录中的 .htaccess 文件中实现了此代码,该文件用于添加“www”。对非 www 请求:
Options +FollowSymlinks
Options All -Indexes
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
但是,这也不起作用。确切的重写规则经过测试并在另一个站点上运行以强制执行“www.”。要加前缀。
这是正在使用的 vhosts conf 文件:
<VirtualHost *:80>
ServerAdmin exampleuser@exampledomain.co.uk
ServerName www.exampledomain.co.uk
ServerAlias exampledomain.co.uk
DirectoryIndex index.php index.html
DocumentRoot /home/exampleuser/public/example.co.uk/public_html
<Directory /home/exampleuser/public/example.co.uk/public_html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
LogLevel warn
ErrorLog /home/exampleuser/public/example.co.uk/log/error.log
CustomLog /home/exampleuser/public/example.co.uk/log/access.log combined
</VirtualHost>
<VirtualHost *:80>
ServerName exampledomain.co.uk
Redirect permanent / http://www.exampledomain.co.uk/
</VirtualHost>
服务器名称和别名的定义与此处显示的顺序相反(Apache 在更改之间重新启动),并且稍后添加了“永久重定向”的第二个 vhosts 条目,所有这些都无效。
什么可能导致这种行为?还有什么我应该检查的吗?搜索了这么多材料以找到解决方案,但看不到任何错误或缺失。任何帮助将不胜感激!