【问题标题】:forcing a rule of a url .htaccess static website强制 url .htaccess 静态网站的规则
【发布时间】:2013-06-11 12:56:22
【问题描述】:

我正在开发一个仅包含根文件夹 (/public_html) 下的 .html 文件的静态网站

我正在尝试在此处强制执行 URL 重写规则。

所有网址都必须是这样的:http://www.domain.com/file#rule 1

其他形式的写作必须被拒绝并被视为错误,例如

http://www.domain.com/file.html#rule 2

http://www.domain.com/file/#规则3

你能帮我解决一下这段代码吗

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^([^\.]+)$ $1.html [NC,L]

我成功地遵守了规则 #1 和 #3 请在规则 #2 上帮助我,所以当我网站的访问者键入 url #2 时,他将被拒绝并且永远不知道 ithis 是一个 html 文件

【问题讨论】:

    标签: .htaccess url-rewriting


    【解决方案1】:

    这是您可以使用的代码:

    Options +FollowSymLinks -MultiViews
    # Turn mod_rewrite on
    RewriteEngine On
    RewriteBase /
    
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html\s [NC]
    RewriteRule ^ /%1 [R=302,L]
    
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{DOCUMENT_ROOT}/$1.html -f
    RewriteRule ^(.+?)/?$ /$1.html [L]
    

    一旦您确认它工作正常,请将R=302 替换为R=301。在测试你的 mod_rewrite 规则时避免使用R=301(永久重定向)。

    【讨论】:

      猜你喜欢
      • 2020-06-29
      • 2013-11-07
      • 1970-01-01
      • 2020-03-22
      • 2014-02-02
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      • 1970-01-01
      相关资源
      最近更新 更多