我想访问一些位于某些子文件夹中的php文件。我正在使用.htaccess文件,它会删除所有.php扩展名。 这是文件:
RewriteEngine On
# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/$ http://example.net/folder/$1 [R=301,L]
# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/
RewriteRule ^(.+)\.php$ http://example.net/folder/$1 [R=301,L]
# Resolve .php file for extensionless php urls
RewriteRule ^([^/.]+)$ $1.php [L]
我不得不说我刚从教程中复制了这个.htaccess文件,因为我没有这方面的经验。
快速举例说明:我可以访问www.example.net/folder/myphpfile.php
,但在尝试访问www.example.net/folder/anotherfolder/myphpfile.php
时收到“找不到文件”错误。
但是当我删除.htaccess
文件时它会起作用。
有人可以帮我解决这个问题。谢谢!
答案 0 :(得分:1)
这样做:
RewriteEngine On
# Unless directory, remove trailing slash
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+?)/$ /$1 [R=301,L]
# Redirect external .php requests to extensionless url
RewriteCond %{THE_REQUEST} \s/.+?\.php
RewriteRule ^(.+)\.php$ /$1 [R=301,L]
# Resolve .php file for extensionless php urls
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1\.php -f [NC]
RewriteRule ^(.+?)/?$ /$1.php [L]