我正在制作一个使用$ _GET方法在网页上显示某些信息的网站。我在htaccess文件中格式化页面的URL时遇到了一些问题,因为我想删除变量并缩短我的URL以改进URL的结构和层次结构。
我目前的网址如下:
site.com/project?pn=my_project
'pn'变量指的是从服务器获取的项目名称。我最终想要的是URL的方式如下:
site.com/my-project
我想确保'site.com/home'和其他类似的页面不受影响,并且这些空格不会被视为下划线,而是作为heiphens。
我将如何进行这些更改?
请注意我当前的htaccess文件包含以下内容(我想保留它)
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
如果可以解释答案以便我可以再次为另一页重写规则,我会非常感激。
答案 0 :(得分:3)
在.htaccess文件中,添加:
RewriteEngine On
RewriteRule ^page/(\d+) /page?referenceid=$1
您可以阅读有关mod_rewrite
(允许此插件的插件)here的所有内容。
答案 1 :(得分:0)
您需要使用重写规则。假设你正在使用Apache,试试这个:
将这些规则放在文档根目录下的.htaccess
文件中(如果您有权访问apache2.conf,那就更好了)
RewriteEngine on
RewriteRule ^/?page(/.*)?$ %{DOCUMENT_ROOT}/page?referenceid=$1 [L]
^/?page(/.*)?$
:匹配/ page / $ 1(?标记确保与所有正则表达式兼容)
%{DOCUMENT_ROOT}
是文档根集在全局或目录
$1
是/ page /
[L]
表示停止处理此规则后的任何规则
只需在现有规则之后添加RewriteRule。