htaccess,重定向到页面但阻止直接访问

时间:2018-10-18 09:08:12

标签: .htaccess

我正在尝试创建具有精美URL的重定向,但是我在努力阻止访问者访问直接文件。

例如,我有一个文件夹pages,其中包含我所有的.html页,并且我想将访问者从www.mysite.com/mypage重定向到www.mysite.com/pages/mypage.html(重定向,但仍显示幻想网址版本)。我已经在.htaccess

中添加了此规则
RewriteRule ^mypage /pages/mypage.html [L]

如果访客仍然能够直接从浏览器访问www.mysite.com/pages/mypage.html,并且我不想允许它,那么这将很好地解决真正的问题。 我尝试了很多解决方案,但似乎无济于事。我的理想解决方案是当访问者尝试访问此页面时重定向到404页面,但是如果不可行,我还可以返回410 (gone)状态。

我附上我的完整.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /

    RewriteRule ^mypage /pages/mypage.html [L]

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.html [L]
</IfModule>

感谢您的时间

1 个答案:

答案 0 :(得分:0)

如果要发布410,则可以使用 [G]标志。规则如下所示

x

相同的工作示例可以在在线htaccess测试仪link

中找到

,如果您想重定向到页面目录下的404.html,则可以使用以下规则

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_URI} ^/pages/? [NC]
RewriteRule .? - [G]

RewriteRule ^mypage /pages/mypage.html [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]

相同的工作示例可以在在线htaccess测试仪link

中找到