就我所见,我不太理解Directory
和指令。我想配置 Apache 服务器以实现以下行为:VirtualHost
网站内容位于:/var/www/mywebsite
我想要以下解决方案:
mywebsite.com/
-> /var/www/mywebsite/index.html
mywebsite.com/mywebsite
->/var/www/mywebsite/index.html
我还安装了 php5,因此我可以在 处编写一个简单的重定向/var/www/redirect.php
。但我不认为这是正确的解决方案,而且我不确定要搜索什么才能找到答案。
答案1
您可以通过 .htaccess 使用以下重写规则
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/mywebsite/?
RewriteRule (.*) /index.html [R=301,L]
有人告诉我 htaccess 是邪恶的,我应该使用 Directory 指令。
只需将规则移至虚拟主机部分
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName mywebsite.com
DocumentRoot /vhosts/mywebsite.com/public_html
<Directory /vhosts/mywebsite.com/public_html>
Options -Indexes
AllowOverride All
Order Allow,Deny
Allow from All
Require All granted
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/mywebsite/?
RewriteRule (.*) /index.html [R=301,L]
</Directory>
</VirtualHost>