我正在尝试为子目录执行RewriteRule而我无法做到。 这是代码:
RewriteCond %{REQUEST_URI} !^/subfolder
RewriteCond %{DOCUMENT_ROOT}/subfolder%{REQUEST_URI} !-f
我也使用上面的代码来删除.php扩展名并在末尾添加一个尾部斜杠。
RewriteRule ^([^/]+)/$ $1.php
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
我可以访问除index.php之外的任何页面 我需要有人帮我修复此问题,以便我可以访问子目录中的页面/文件。
谢谢
答案 0 :(得分:0)
在添加.php扩展名之前,您需要显式检查php文件是否存在。请记住,重写条件仅适用于紧随其后的规则,因此如果需要应用于多个规则,则需要复制它们。此外,您希望所有重定向发生在之前任何路由或重写:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+)/$ $1.php [L]
RewriteCond %{DOCUMENT_ROOT}/$1/$2.php -f
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php
# whatever subfolder rewrites you need can go here