【发布时间】:2017-11-23 19:33:23
【问题描述】:
这是我的 .htaccess,我使用 404 自定义页面并隐藏 .html 和 .php 扩展名。但是当我阻止用户输入.html 和.php 时,他们也可以访问http://example.com/index 和子文件夹http://example.com/folder/index。我使用相对 url 链接图像和资产,用户输入“索引”将使其取消链接。如何使用 .htaccess 将任何“索引”重定向到 /error404.html?
ErrorDocument 404 /error404.html
<IfModule mod_rewrite.c>
RewriteCond %{THE_REQUEST} \.(?:html|php)\s [NC]
RewriteCond %{REQUEST_URI} !=/error404.html
RewriteRule ^ - [R=404,L]
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
# Add trailing slash to url
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
RewriteRule ^(.*)$ $1/ [R=301,L]
# Remove .php-extension from url
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^\.]+)/$ $1.php
# Remove .html-extension from url
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^\.]+)/$ $1.html
# End of Apache Rewrite Rules
</IfModule>
【问题讨论】:
标签: html apache .htaccess mod-rewrite