htaccess mod_rewrite不会在主机上保留查询字符串,但可以在本地主机上使用

时间:2019-05-01 18:24:43

标签: apache .htaccess mod-rewrite

我正在使用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]

显然某个地方有错误,但我找不到它。

0 个答案:

没有答案