我的重写规则有问题。我在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]
答案 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]
RewriteCond%{REQUEST_URI}!(folder1 | folder2 | file1.php | file2.php | file3.php)[NC]
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]