【问题标题】:mod_rewrite trailing slash issuemod_rewrite 斜杠问题
【发布时间】:2011-06-28 02:26:40
【问题描述】:

我目前使用 .htaccess 将域重定向到子目录。 url,“example.com”成功重定向到“example.com/sub”,“example.com/forums/”将重定向到“example.com/sub/forums”,从地址中隐藏子目录“sub”酒吧。但是使用“example.com/forums”(没有尾部斜杠)会正确重定向,但会在浏览器的地址栏中显示 example.com/sub/forums。

我尝试修改 htaccess 文件以在省略时添加尾部斜杠,但这似乎没有帮助。对此问题的任何帮助将不胜感激。

RewriteEngine on
RewriteCond %{HTTP_HOST} example\.com [NC]
RewriteCond %{REQUEST_URI} !^/sub/
RewriteRule ^(.+) sub/$1 [L]

【问题讨论】:

    标签: .htaccess mod-rewrite


    【解决方案1】:

    当您请求 /forum 时,Apache 发现 /forum 不是一个文件,而是一个目录 /forum/,因此它会发出一个外部重定向(301 重定向)到正确的 url。 你要做的是像这样拦截这种行为:

    RewriteEngine on
    
    RewriteCond %{REQUEST_URI} !^/sub/
    RewriteRule ^(.+) sub/$1
    
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteCond %{REQUEST_URI} !/$
    

    实际规则可能不同,但你明白了。

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 2011-05-15
      • 2016-07-14
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多