簡體   English   中英

htaccess重寫規則導致禁止訪問

[英]Htaccess rewrite rule causing Forbidden access

我正在嘗試從url隱藏子文件夾,如下所示:

localhost / imo / public_html / public / ajuda.phplocalhost / 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM