PHP/Apache Rewrite for Subfolder


PHP/Apache Rewrite for Subfolder

我有以下重写设置:

RewriteEngine on
RewriteRule ^(.*)/$ $1.php
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^('w+)'.php$ /$1 [R=301]
RewriteRule ^('w+)/?$ /$1.php

我正在尝试访问我的/admin子目录下的任何页面(即 /admin/index.php/admin/users.php等)默认为 /admin/

我想我可以添加以下内容:

RewriteRule ^admin/('w+)'.php$ /admin/ [R=301]

在我现有的 301 重写规则之后,但它只是创建了一个循环。

自从我编写这些规则以来已经有一段时间了,所以我几乎不记得我的模组重写以及我是如何创建它们的。(不是我的强项。关于如何解决此问题的建议?

谢谢!

这应该是你完整的 .htaccess:

RewriteEngine on
RewriteRule ^(admin)/[^.]+'.php$ /admin/ [NC,L,R=301]
## hide .php extension
# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}'s/+(.+?)'.php['s?] [NC]
RewriteRule ^ /%1 [R=301,L,NE]
# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^(.+?)/?$ /$1.php [L]

你应该使用:

RewriteRule ^('w+)/admin/('w+)'.php$ http://yourdomain/admin/ [R=301]