4

这是我现在的 .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
4

3 回答 3

6

匹配整个查询字符串并使用反向引用将其附加到您的新 URL 应该可以工作。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)$ $1.php?%1 [NC,L,QSA]
于 2013-03-19T18:26:09.997 回答
1

这是一个更简单的解决方案。我们在团队项目中使用它。它不仅适用于根目录,而且适用于您网站的任何目录。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
于 2017-01-19T21:39:12.557 回答
0

如果您通过,id那么您必须使用此代码

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

现在您可以访问

domain.com/test?id=1

domain.com/test/1
于 2013-03-19T18:08:52.697 回答