首页 > 解决方案 > Htaccess没有重写子目录中的文件

问题描述

我的 htaccess 文件中有以下代码,它从页面名称中删除 .php 扩展名,并在以下目录中的页面名称末尾插入斜杠时重定向到 404 页面。

  1. example.com/file [重定向]
  2. example.com/file/ [不重定向]
  3. example.com/folder/file [重定向]
  4. example.com/folder/file/ [不重定向]
  5. example.com/folder/folder/file [不重定向]
  6. example.com/folder/folder/file/ [不重定向]

我已经尝试了几个 htaccess 代码,但5.不重定向。我希望5.1. 和 3. 一样重定向。

代码

# error pages
ErrorDocument 203 /error/203.php
ErrorDocument 204 /error/204.php
ErrorDocument 301 /error/301.php
ErrorDocument 400 /error/400.php
ErrorDocument 401 /error/401.php
ErrorDocument 403 /error/403.php
ErrorDocument 404 /error/404.php
ErrorDocument 405 /error/405.php
ErrorDocument 406 /error/406.php
ErrorDocument 500 /error/500.php
ErrorDocument 502 /error/503.php
ErrorDocument 503 /error/503.php
ErrorDocument 504 /error/504.php

Options -Indexes

RewriteEngine on

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

# rewrite index page
RewriteRule ^login index.php [NC,L]

# rewrite profile page
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f

# site.com/profile.php
RewriteRule ^([a-zA-Z0-9_.]+)$ profile.php?tg_u=$1 [NC,L]
#RewriteRule ^([^.]+)$ $1.php [NC,L]

# block access to htaccess file
<Files .htaccess>
order allow,deny
deny from all
</Files>

标签: .htaccessmod-rewriteurl-rewriting

解决方案


推荐阅读