【问题标题】:mod_rewrite disallow call of subfoldermod_rewrite 禁止调用子文件夹
【发布时间】:2013-02-07 04:57:26
【问题描述】:

我正在使用 2 个域,例如 http://doma.inhttp://domain.com

缩短 URL 仅调用从我的脚本生成的 URL。来自缩短 URL 的所有其他调用都应转发到主域。这就是为什么我有这个小的 mod_rewrite 规则。

RewriteCond %{HTTP_HOST} ^doma.in [NC]
RewriteRule ^/?$ http://www.domain.com/$1 [R=301,L]

问题

我想禁止从缩短 URL 调用子文件夹。因为缩短 URL 也可以生成自定义 URL,如

http://www.nokia.com -> http://doma.in/nokia

如果我有一个名为 "nokia" 的子文件夹,它将不会被转发到目标。它不是转发而是调用子文件夹。

使用此规则通过 mod_rewrite 转发 URL。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-x
RewriteRule ^(.*) /redirect.php?id=$1 [L]

【问题讨论】:

    标签: mod-rewrite


    【解决方案1】:

    你的问题有点不清楚。

    即使您有一个名为 /nokia 的目录,如果您希望为 /nokia 执行重定向,则需要删除以下行: RewriteCond %{REQUEST_FILENAME} !-d

    该条件的意思是“如果请求的文件路径是现有目录,则不要继续。”

    【讨论】:

    • 感谢您的回复。没有 !-d 的前锋没有改变任何东西。我不知道我还能如何转发到目标而不是调用目录。
    猜你喜欢
    • 2014-04-15
    • 2014-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    • 1970-01-01
    • 1970-01-01
    • 2017-03-09
    相关资源
    最近更新 更多