[英]Htaccess rewrite rule causing Forbidden access
我正在嘗試從url隱藏子文件夾,如下所示:
localhost / imo / public_html / public / ajuda.php到localhost / imo / ajuda
如果文件存在,它的運行良好,否則,我將被禁止訪問:
您無權訪問此服務器上的/imo/public_html/public/public_html/public/public_html...public/contacto.php.php.php.php.php.php.php.php.php.php.php。
這是我的htaccess文件:
<IfModule mod_rewrite.c>
Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteRule ^$ public_html/public/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ public_html/public/$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L,QSA,NC]
</IfModule>
我已經在stackoverflow上進行搜索,看來規則正在引起一個循環,但是到目前為止,所提供的解決方案在我的案例中仍然無效。 任何幫助都將不勝感激。
謝謝。
更新感謝@Matthijs Otterloo,這是有效的htaccess腳本:
<IfModule mod_rewrite.c>
Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteRule ^$ public_html/public/
RewriteCond %{REQUEST_URI} !^/public_html/public
RewriteRule ^/?([^/]+)$ /public_html/public/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L,QSA,NC]
</IfModule>
在您的.htaccess
文件中嘗試以下操作:
RewriteEngine On RewriteCond %{REQUEST_URI} !^/public_html/public RewriteRule ^/?([^/]+)$ /public_html/public/$1 [L]
最好的方法是設置適當的虛擬主機,但這應該可以解決。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.