在有人说这是重复之前 - 我尝试了所有其他类似的问题而没有任何成功的结果。
我使用apache。
我正在尝试隐藏网址中的文件扩展名。例如,index.php将在URL中显示为索引。
所以我做了什么:
1)我创建了一个.htaccess文件,将其粘贴到其中:
Options -MultiViews
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [NC]
RewriteCond %{REQUEST_URI} ^/(.+?)/$
RewriteCond %{DOCUMENT_ROOT}/%1\.html -f
RewriteRule ^ /%1.html [L]
RewriteCond %{REQUEST_URI} ^/(.+?)/$
RewriteCond %{DOCUMENT_ROOT}/%1\.php -f
RewriteRule ^ /%1.php [L]
2)上传.htacccess
到www/html
文件夹
3)重启apache
4)跑sudo a2enmod rewrite
5)再次重启apache
6)去/etc/apache2/sites-enabled/000-default.conf
并将其粘贴到<VirtualHost *:80>
标签中:
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
7)重启apache
并且...文件扩展名仍显示在我的网站上。这是我第一次玩.htaccess,所以有人可以解释一下我做错了什么以及我应该采取的正确步骤吗?
答案 0 :(得分:0)
最好的办法是分解规则并一次应用一个规则。
删除.htaccess
中的所有内容并添加以下内容
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
现在查看.php
扩展名的文件是否正确解析。
然后添加.html规则。改变扩展名完全相同。