簡體   English   中英

修改我的.htaccess文件以隱藏URL中的.php擴展名后,無法找到某些目錄項

[英]After modifying my .htaccess file to hide the .php extension from the URL, some directory items are unable to be found

最近,我得到了一些幫助修改我的.htaccess文件來隱藏url中的.php擴展名。 在我開始工作之后,我的網站出現了一些錯誤。 無論出於何種原因,子目錄中的任何php頁面都會返回404錯誤。 例如:

mywebsite.com/test/test.php(404)

mywebsite.com/test/test.html(這很好用)

由於這只是在我的.htaccess文件被修改后才開始發生,我假設問題就在那里。 該文件包含如下:

RewriteEngine On

# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ http://www.mywebsite.com/$1 [R=301,L]

# Redirect external .php requests to extensionless url
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} /.+?\.php [NC]
RewriteRule ^(.+?)\.php$ /$1 [R=301,L,NE]

# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]

ErrorDocument 404 /404.php

DirectoryIndex index.php

如果我能提供更多信息來幫助解決這個問題,請告訴我!

謝謝你的幫助。

在你的root .htaccess中試試這些規則:

ErrorDocument 404 /404.php    
DirectoryIndex index.php
RewriteEngine On
RewriteBase /

# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ /$1 [R=301,L,NE]

# Redirect external .php requests to extensionless url
RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} /.+?\.php [NC]
RewriteRule ^(.+?)\.php$ /$1 [R=301,L,NE]

# Resolve .php file for extensionless php urls
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ $1.php [L]

如果您打算隱藏您的PHP項目結構以供公共訪問作為目錄樹...您應該考慮在項目的根目錄中添加.htaccess文件,只需1行

將以下行添加到.htaccess文件中。

Options -Indexes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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