mod_rewrite:动态重定向和目录阻止

锡拉克

我正在研究mysite.com/dir/.htaccess中的.htaccess文件,该文件将mysite.com/dir/page重定向到mysite.com/dir/page.php(如果可能),并重定向到mysite.com/dir/不可能。因此,任何“错误”的请求都将被重定向到主页。我使用的代码是:

RewriteEngine on

# determine DIR_BASE dynamically
RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
RewriteRule ^(.*)$ - [E=DIR_BASE:%1]

# see if .php is found
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}\.php -f
RewriteRule ^(.*)$ $1.php

# if not found redirect to %{ENV:DIR_BASE}
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ %{ENV:DIR_BASE} [R]

这一切都很好。(顺便说一句:我想确定文件的基本目录,因为我可能想稍后更改目录名,但不要更改文件)。我现在想要的是为用户阻止一些目录,因为它们包含不应访问的php库。我如何才能像以前一样阻止目录mysite.com/dir/lib/*和mysite.com/dir/lib2/*并将它们重定向到mysite.com/dir/?我也想使用不喜欢的代码

RewriteRule ^lib/(.)* %{ENV:DIR_BASE}

这样会将mysite.com/dir/lib/../page重定向到主页,而不是应将其所属的mysite.com/dir/page重定向到主页。我对%{REQUEST_FILENAME}和%{REQUEST_URI}进行了很多尝试,但是当涉及到mod_rewrite时,我只是一个初学者。你知道解决方案吗?

阿努巴瓦

这应该工作:

RewriteEngine on

# determine DIR_BASE dynamically
RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
RewriteRule ^(.*)$ - [E=DIR_BASE:%1]

RewriteRule ^lib2?(/|$) %{ENV:DIR_BASE} [L,NC,R]

# see if .php is found
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}\.php -f [NC]
RewriteRule ^(.*)$ $1.php [L]

# if not found redirect to %{ENV:DIR_BASE}
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ %{ENV:DIR_BASE} [L,R]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用重定向和mod_rewrite

来自分类Dev

mod_rewrite和重定向导致循环

来自分类Dev

mod_rewrite和重定向导致循环

来自分类Dev

使用.htaccess和mod_rewrite将提要重定向到另一个目录

来自分类Dev

使用mod_rewrite重定向图像

来自分类Dev

mod_rewrite()内部重定向过多

来自分类Dev

在mod_rewrite之后重定向URL?

来自分类Dev

Mod_rewrite无法正确重定向

来自分类Dev

Mod_rewrite重定向网址问题

来自分类Dev

简单的mod_rewrite重定向

来自分类Dev

使用mod_rewrite的重定向循环

来自分类Dev

使用mod_rewrite重定向循环

来自分类Dev

Mod_rewrite简单重定向

来自分类Dev

mod_rewrite()内部重定向过多

来自分类Dev

Mod_rewrite重定向网址问题

来自分类Dev

简单的mod_rewrite重定向

来自分类Dev

mod_rewrite强制内部重定向

来自分类Dev

mod_rewrite重定向目录中除目录本身以外的所有内容

来自分类Dev

htaccess mod_rewrite重定向到目录,而不显示在url上

来自分类Dev

mod_rewrite和子目录

来自分类Dev

htaccess mod_rewrite和301重定向到友好网址

来自分类Dev

mod_rewrite和动态页面

来自分类Dev

Mod_rewrite:重定向到哈希URL?

来自分类Dev

.htaccess mod_rewrite重定向不起作用

来自分类Dev

使用mod_rewrite重定向.dev域

来自分类Dev

Mod_rewrite重定向到特定文件

来自分类Dev

如何使mod_rewrite从子域重定向到querystring?

来自分类Dev

mod_rewrite重定向循环/破坏了我的网站

来自分类Dev

停止影响重定向规则的Apache mod_rewrite