我一直在使用.htaccess消除查询字符串并以一种简洁的方式显示我的URL。到现在为止,这一直很好。我可以访问可以正常运行的页面,例如www.example.com/speakers/(实际上将是www.example.com/speakers.php)。与其他页面或数据库中存储的其他页面相同。但是,在“扬声器”页面上,我有一个选择选项来选择要查看扬声器的年份(仅是您的标准选择元素)。我选择“ 2018”以查看2018年的演讲者,并将其重定向到www.example.com/speakers/2018/?ax=2018&do=&third=
为什么重定向时显示查询字符串。之前,我已经在很多页面上使用过.htaccess流程,其重定向完全像这样,并且它不显示查询字符串(相同的Web主机和所有内容)。
.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/([^/]*)
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^([^/]*)(/([^/]*))?(/([^/]*))?(/([^/]*))? /$1.php?ax=$3&do=$5&third=$7 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z]*)/(.*)$ /content.php?url=$1/$2 [L]
Options +FollowSymLinks
RewriteEngine on
</IfModule>
<IfModule !mod_rewrite.c>
ErrorDocument 404 /content.php?err=404
</IfModule>
**代码和内联Java **
<form>
<select name="year" id="year" style="padding: 5px; font-size: 14px;">
<option value='0'>-- Choose a Year --</option>
<option value="2018">2018</option>
</select>
</form>
<script>
$(document).ready(function() {
$("#year").on('change',function() {
if($(this).val()!=0) {
window.location = '/speakers/'+$(this).val();
}
});
});
</script>