.htaccess文件隐藏URL中的GET请求

时间:2018-03-23 21:06:53

标签: .htaccess url

我对.htaccess文件很新,可能是我错了。我一直在收集代码片段,试图完成我想要的工作。

这是我目前在文件中的内容

我读过这应该是你的.htaccess文件

Options +MultiViews
Options +FollowSymlinks
RewriteEngine On
RewriteBase / 

这是为了强制从HTTP重定向到HTTPS

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

添加此项是为了删除所有文件末尾的.php

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]

添加此选项是为了在按下主页链接时删除/ index的显示

RewriteCond %{THE_REQUEST} ^.*\/index?\ HTTP/
RewriteRule ^(.*)index\.php?$ "/$1" [R=301,L]

我在Google和其他网站上都尝试了很多想法。我没有幸运隐藏GET请求。 目前,网址看起来像https://mysite.ca/event?id=123 我希望它看起来像是https://mysite.ca/event/123

这是托管在Godaddy上,它只是一个普通的PHP网站,如果这有任何区别。

任何想法都会很棒!

1 个答案:

答案 0 :(得分:1)

首先Options +MultiViews已删除.php扩展程序,因此您不需要:

RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L]

关于您的问题请尝试以下规则:

RewriteRule ^event/([0-9]+)?$ event?id=$1 [NC]

哪个网址从example.com/event/<number>更改为example.com/event?id=<number>

虽然,如果您的网站进行无限重定向,那么您应该将其更改为:

RewriteRule ^events/([0-9]+)?$ event?id=$1 [NC]

如果您有一些包含/标题重定向回事件并创建无限循环,则会发生这种情况。