1

我在我的应用程序中使用了一个简单的 URL 重写。

RewriteEngine On

RewriteRule ^show/([a-zA-Z0-9]+)/([0-9]+)$ /show.php?d=$1&id=$2
RewriteRule ^sitemap/([a-zA-Z0-9]+)$ /sitemap.php?d=$1
RewriteRule ^sitemap/([a-zA-Z0-9]+)/([0-9]+)$ /sitemap.php?d=$1&page=$2

它们都可以很好地重定向,但问题在于它们没有在过程中传输的 url 参数。

即,我到达了,example.com/show/district/id但脚本的行为就像它到达了example.com/show.php. 我var_dump()在php中使用调试并var_dump($_GET)返回一个空数组。

注意:我是 htaccess 和 url 重写的新手,所以实际上无法从任何其他问题中找到我的答案,请帮忙。

4

1 回答 1

1

尝试使用以下修改后的代码:

Options -MultiViews
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^show/([a-zA-Z0-9]+)/([0-9]+)$ show.php?d=$1&id=$2 [L,QSA]
RewriteRule ^sitemap/([a-zA-Z0-9]+)$ sitemap.php?d=$1 [L,QSA]
RewriteRule ^sitemap/([a-zA-Z0-9]+)/([0-9]+)$ sitemap.php?d=$1&page=$2 [L,QSA]

关于多视图的说明:

如果您不使用-MultiViews,服务器会自动假定您正在尝试show.php直接运行,因为它会查找show.*. 它知道该文件show不存在,因此会搜索show开头有的文件。

有关详细信息,请参阅此文档

于 2013-04-01T11:37:14.990 回答