我有一个:http://example.com/TEST/user/ticket.php?id=1
我想要这个:http://example.com/TEST/user/ticket/1
这是我的.htaccess文件:
Options -Multiviews
RewriteEngine On
RewriteBase /TEST/user/
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?ticket/(.*?)/?$ /ticket.php?id=$1 [L]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /ticket\.php\?id=([^\&\ ]+)
RewriteRule ^/?ticket\.php$ /ticket/%1? [L,R=301]怎么了?
.php扩展是正确隐藏的,但是查询字符串没有被“转换”为路径。它给了我:
500内部服务器错误
发布于 2018-10-22 23:15:33
服务器日志应该显示错误的原因。
这里的一个问题是,在最后一行中,您使用的模式只匹配ticket.php而不是ticket.php?id=。
RewriteRule ^/?ticket\.php$ /ticket/%1? [L,R=301]试一试
RewriteRule ^/?ticket\.php?id=([^\&\ ]+).*$ /ticket/$1? [L,R=301]RewriteCond不应该是必要的。
https://stackoverflow.com/questions/52938812
复制相似问题