htaccess的删除.php然后保存查询字符串(htaccess remove .php and

2019-07-22 01:18发布

这是我的.htaccess文件现在。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [NC,L,QSA]

这工作,因为它不使用php扩展的时候让我的网页访问的事实。

Old = domain.com/test.php
New = domain.com/test

坏的事情是,当我将得到的数据与下面的链接中的数据不通过。 我认为QSA选择这样做,什么回事?

domain.com/test?id=1

Answer 1:

匹配整个查询字符串,并使用反向引用应该把它附加到新的网址。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)$ $1.php?%1 [NC,L,QSA]


Answer 2:

如果你逝去的id ,那么你就必须使用这个代码

Options +FollowSymLinks
RewriteEngine on
RewriteRule ^test/(.*)$ /test.php?id=$1

现在你可以访问

domain.com/test?id=1

domain.com/test/1


Answer 3:

这里有一个更简单的解决方案。 我们用它在我们的团队项目。 它将工作不仅根,但在你的网站的任何目录。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php


文章来源: htaccess remove .php and keep query string