我正试图通过使用。htaccess来改善我的url结构。我有一个名为foo.php
的文件和一个名为/foo
的文件夹。我希望能够访问example.com/foo
并显示example.com/foo.php
。我还希望能够访问example.com/foo/bar
并显示example.com/foo/bar.php
。最后,我想从example.com/foo/
重定向到example.com/foo
。有人知道怎么做吗?
这是我的代码:
RewriteEngine On
DirectorySlash Off
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.php [NC,L]
我能够删除.php
扩展名,因为我无法从文件夹重定向到文件。我也尝试了下面的解决方案,但它们都没有达到预期的效果。
htaccess -重写目录同名的文件
。Htaccess,重写与目录
同名的文件名。Htaccess,正确重写同名目录和文件
我找到了一个解决这个问题的变通方法。为了从文件名中删除扩展名,我在.htaccess文件中使用了以下代码:
RewriteEngine On
DirectorySlash Off
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php
上面的代码允许我进入example.com/foo
并显示example.com/foo.php
。为了从example.com/foo/
重定向到example.com/foo
,我在/foo
目录中创建了一个index.php
文件。我将以下PHP代码添加到文件
<?php
$page = str_replace('/index.php', '', $_SERVER['PHP_SELF']);
header("Location: $page");
?>
这将从目录重定向到文件。希望对你有帮助。