从URL中删除.php后缀

时间:2014-06-08 21:11:09

标签: php .htaccess mod-rewrite

我正在努力从主目录和我的所有子目录中删除.php,但它不起作用。我使用了以下代码。 如果我仍然使用/test.php输入地址目录中的文件,我怎么能将它重定向到/ test。 以下没有任何作品。也是public_html文件夹或根目录上的htaccess文件?

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on RewriteEngine On RewriteBase /

## hide .php extension snippet

# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]

# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ $1.php [L]

但是在我的子目录中,我有像下面这样的mysql链接的htaccess,它可以工作。

RewriteEngine On
RewriteRule ^test\/([0-9]+)$ test.php?id=$1

1 个答案:

答案 0 :(得分:0)

有关.htaccess文件放置位置的问题,请参阅此处列出的内容:

关注 Mod Rewrite .htaccess文件的位置与用于网址重写的条件和规则之间存在关系 Mod Rewrite < / em>的。这由

控制

但是在您的示例中,它更为简单:使用%{REQUEST_URI}代替%{THE_REQUEST}。它更容易解析(检查)查询字符串与它分离。