我正在使用mod_rewrite来转换带有1个参数的url。但是,问题在于它没有保留。使用$_GET['data']
时,它可以在localhost上运行,但是以某种方式在我的主机上不起作用。我阅读了有关堆栈溢出的文档和类似问题,基于此,我知道QSA
标志应该可以胜任。
示例:
timeline.php?data=mb
将更改为timeline/mb
这是我的代码:
RewriteRule ^timeline/([a-z]+)$ timeline.php?data=$1 [NC,L,QSA]
完整的.htaccess:
RewriteEngine on
#HTTPS ON
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
#Remove www
Rewritecond %{HTTP_HOST} ^www.canadabybike.me$
Rewriterule ^(.*) https://canadabybike.me/$1 [QSA,L,R=301]
#Rewrite parameters for timeline
RewriteRule ^timeline/([a-z]+)$ timeline.php?data=$1 [NC,L,QSA]
#Remove .php extension
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
显然某个地方有错误,但我找不到它。