从子文件夹URL

时间:2016-06-24 18:38:16

标签: php .htaccess

我正在尝试为我的项目添加一些其他页面。但我有一个关于PHP扩展的问题。

所以我正在使用htaccess作为跟随htaccess的一些网址:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /(.*)index\.php($|\ |\?)
RewriteRule ^ /%1 [R=301,L]

RewriteRule ^friends/([\w-]+)/?$ /friends.php?username=$1 [L,QSA]
RewriteRule ^followers/([\w-]+)/?$ /followers.php?username=$1 [L,QSA]
RewriteRule ^status/([\w-]+)/?$ /status.php?msgID=$1 [L,QSA]
RewriteRule ^following/([\w-]+)/?$ /following.php?username=$1 [L,QSA]
RewriteRule ^followers/([\w-]+)/?$ /followers.php?username=$1 [L,QSA]
RewriteRule ^(.*/([a-zA-Z0-9_-]+)|([a-zA-Z0-9_-]+))$ /profile.php?username=$1 [L,QSA]

现在,我已经从details文件夹创建了photos.php,链接是:

<a href="http://www.name.com/details/photos.php">Go Photos</a>

当我点击Go Photos链接时,我想删除那个url php扩展名,如

http://www.name.com/details/photos

我还是从stackOverflow

尝试了一些答案

Remove .php extension from url

Remove php extension from url

但是这些答案让我找不到404页面。

如何从网址中删除.php扩展程序,任何人都可以帮助我?

1 个答案:

答案 0 :(得分:2)

您需要其他规则才能删除.php扩展名。

使用以下规则:

Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} \s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=302,NE,L]

RewriteCond %{REQUEST_METHOD} !POST
RewriteCond %{THE_REQUEST} /index\.php [NC]
RewriteRule ^(.*)index\.php$ /$1 [L,R=302,NC,NE]

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^status/([\w-]+)/?$ status.php?msgID=$1 [L,QSA]

RewriteRule ^(following|followers|friends)/([\w-]+)/?$ $1.php?username=$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

RewriteRule (?:^|/)([\w-]+)/?$ profile.php?username=$1 [L,QSA]