mod_rewrite禁止调用子文件夹

时间:2013-02-06 20:20:54

标签: mod-rewrite

我使用的是http://doma.inhttp://domain.com

等2个域名

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

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

问题

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

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]

1 个答案:

答案 0 :(得分:0)

你的问题有点不清楚。

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

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