2016-09-20 133 views
1

嘗試從index.php中刪除並僅解析到可以工作的子目錄名稱,但是在對.htaccess文件進行更改後,所有其他頁面都會重定向到子目錄。
例如:
更改:site.com/subdir/index.phpsite.com/subdir/
但隨後site.com/subdir/page?id=4解析site.com/subdir/.htaccess從子目錄中刪除index.php重定向所有動態頁面


的.htaccess:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 


RewriteBase /subdir/ 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

如何使得只有index.php的解決寫這個規則/ subdir /而不是該目錄內的其他頁面?

+0

它位於根目錄 – Hezerac

+0

是否有'/子目錄/'也可以是任何的.htaccess? – anubhava

+0

'/ subdir /'中沒有.htaccess文件 – Hezerac

回答

1

您可以使用網站根目錄的.htaccess的規則:

RewriteEngine On 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*/)index\.php[?\s] [NC] 
RewriteRule^%1 [L,R=301,NE] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.+?)/?$ $1.php [L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^subdir/index.php [L] 
+1

完美。非常感謝你!這是一個很大的幫助! – Hezerac

相關問題