.htaccess rewriterule文件夹和文件重写

时间:2015-01-29 19:14:31

标签: php apache .htaccess mod-rewrite url-rewriting

我的重写规则有问题。我在root / hrp中有新的网页。如果我在那个目录中打开页面,那么一切都没问题,但是当我想从root浏览那些页面时(没有/ hrp /)那么就是问题。我发现了一些.htaccess规则并且一切正常,但是如果我想直接执行一些pdf,jpg或php脚本,那就来问题了。

Options +FollowSymLinks  -MultiViews
RewriteEngine On

RewriteCond %{REQUEST_URI} !hrp/
RewriteRule (.*) /hrp/$1  [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/hrp/index.php

RewriteRule ^(.*)$ /index.php [L]

如果我把这个底部代码放在开头,我可以直接打开文件,但页面不起作用,反之亦然

RewriteCond %{REQUEST_FILENAME} (/|\.php|\.html|\.htm|\.png|\.jpg|\.jpeg|\.gif|\.xml|\.rss|\.feed|\.pdf|\.raw|/[^.]*)$  [NC]
RewriteRule ^(.+)$ $1 [L]

2 个答案:

答案 0 :(得分:0)

请尝试在顶部添加此内容:

RewriteRule \.(php|html?|png|jpe?g|gif|xml|rss|feed|pdf|raw)$ - [L,NC]

或者您可以尝试将此条件添加到您的hrp规则中:

RewriteCond %{DOCUMENT_ROOT}/hrp/$1 -f [OR]
RewriteCond %{DOCUMENT_ROOT}/hrp/$1 -d
RewriteRule (.*) /hrp/$1  [L]

答案 1 :(得分:0)

我找到了解决方案

不要重写此文件

RewriteCond%{REQUEST_URI}!。(gif | jpg | png | ico | css | js | swf | wav | mp3 | less | cur | pdf | jpeg | txt | ico | zip | gz)[NC]

不要重写这个文件夹 - 我有php文件,不要重写这个文件

RewriteCond%{REQUEST_URI}!(folder1 | folder2 | file1.php | file2.php | file3.php)[NC]

所有内容都在" / hrp /"夹

RewriteCond%{REQUEST_URI}!hrp /

RewriteRule(。*)/ hrp / $ 1 [L]

但网址不包含" / hrp /"

RewriteCond%{REQUEST_FILENAME}!-f

RewriteCond%{REQUEST_FILENAME}!-d

RewriteCond%{REQUEST_URI}!^ / hrp / index.php

RewriteRule(。*)/ index.php [L]